原创 將博客搬至CSDN

大部分情況下我都會在簡書上更新,當然也會不定時更新到csdn上

原创 如何實現out-side-click功能

在日常開發中,我們常常會遇到這樣的需求 點擊特定元素外的時候觸發某個事件 具體表現爲做一個彈窗時,點擊彈窗外的任意部分,如遮罩層,則自動關閉彈窗。 特定元素:彈窗內容層 外部元素:除了內容層外的其他一切元素 常規做法是設置遮罩層與內容層

原创 linux入門-mysql安全防範

近日服務器收到攻擊,數據庫被清空並插入了一個表,內容如下: warning bitcoin_address email To recover your lost Database and avoid leaking it: S

原创 個人免籤支付收款解決方案(支持一鍵喚起支付寶)

隨着手機支付的流行,越來越多的服務商開始接入移動支付,使用最爲廣泛的是支付寶支付和微信支付,然而這些支付方式都要去企業資質纔可以申請,對於個人商戶而已,沒有註冊公司沒有營業執照無法直接使用相關API。 對於依據法律法規和相關監管規定免於辦理

原创 手摸手系統:使用原生JS封裝時間區間選擇器插件

網上已經有了各種各樣的插件,滿地的輪子,爲什麼我們還要自己封裝呢?其實道理也很簡單,因爲不這些插件不是定製的,靈活性和可拓展性自然有所缺陷。就在前幾天,產品和設計圍過來說希望開發一個時間選擇組件,看剛好上一次迭代已經結束了,就試着開發一下。

原创 vue項目封裝併發布無限滾動指令優化渲染性能的npm模塊

曾經在前端之巔看過這麼一篇文章,標題是《網站性能優化實戰——從12.67s到1.06s的故事》,當時我就納悶了,哪來的網站首屏需要加載12秒,而且怎麼做到這麼極致的優化的? 果然過了幾天,接手了一份祖傳代碼,運行後發現項目奇卡,渲染也不是一

原创 使用eslint來規範你的項目源碼

在vscode上開發個人項目的時候,代碼風格隨你定,弄出花也沒人說,可是一旦是團隊項目,那就得注意代碼風格了。舉個常見例子來說,A修改了代碼,並格式化成2個縮進,B也同時同一份代碼,但格式化成4個縮進,這時候代碼提交的時候就會存在衝突,需要

原创 VSCode中同步用戶配置

vscode是一款好用的IDE,可是卻存在一個不友好的缺陷,那就是更新版本後或者換到其他電腦後,之前的用戶設置會重置。 這裏介紹一個插件,用於同步用戶設置

原创 兼容IE下無法forEach NodeList的bug

NodeList 對象是一個節點的集合,是由 Node.childNodes和 document.querySelectorAll返回的,實則是一個類數組對象。 Although NodeList is not an Array, it

原创 dataset兼容低版本IE

請使用 event.target.getAttribute('data-xxx')

原创 webpack使用HtmlWebpackPlugin進行cdn配置

CDN服務商的選擇 在前面的文章中我們介紹了cdn的實現原理,現在我們來實現如何在正式開發中使用cdn功能。要使用cdn功能,就需要cdn服務商,我們可以自己搭建,也可以使用一些比較知名的服務商,慶幸的是市面上有不少的免費cdn服務商,如:

原创 linux上利用pm2和nginx部署項目

Introduce 在開發模式的時候,我們常用nodemon和webpack熱更新nodejs項目(如express)和前端項目(如vue),但需要部署的時候我們就不能再用開發環境的配置了,需要改成生產環境配置。爲了使得項目可以穩健的運行在

原创 Nginx配置多個服務共用80端口

對於Web而已,80端口和443端口是十分重要的,原則上需要輸入http://domain.com:80纔可以瀏覽網頁的,但由於默認端口是80,所以‘:80’可以忽略。同理對於https的443端口也一樣。 隨着服務器性能的提升和業務的需求

原创 vue使用prerender-spa-plugin預渲染進行seo優化

前言 單頁應用(SPA)是最近流行的一種應用模式,它支持在同一頁面下通過哈希(hash)或html5的history api實現不刷新式切換視圖,既實現了動態路由的變化,也實現了歷史記錄的保持,然而,相比於靜態頁面和動態頁面(ASP/PHP

原创 vue項目使用prerender-spa-plugin進行SEO優化

前言單頁應用(SPA)是最近流行的一種應用模式,它支持在同一頁面下通過哈希(hash)或html5的history api實現不刷新式切換視圖,既實現了動態路由的變化,也實現了歷史記錄的保持,然而,相比於靜態頁面和動態頁面(ASP/PHP/