node.js-腳本合併

瀏覽器端的JS不支持模塊語法,項目腳本進行拆分各個小腳本是需要的,這樣便於維護,但也會引起請求數的增加。比如百度:

假設有1千萬人同時打開百度的首頁,這裡有5個外鏈JS,那麼請求次數就是5千萬,你的伺服器如果爛的話,你家的伺服器可能就炸了~~

如果我在請求的時候,在後台把多個js合併成一個,比如merge.js,然後<script src="merge.js"></script>。這樣請求數就是1了。同樣是百度的場景,那麼請求數1千萬,減少4千萬的請求量,這個就是腳本合併。

那麼從node.js的角度怎麼實現?

假設我要合併這兩個腳本為merge.js

demo.js

運行一下,發現不成功,而且還報錯:

查看一下,發現merge.js裡面居然是html字元:

這就怪了,為什麼請求js文件會得到html字元?

這裡要注意:1、首先頁面是有載入的,不然不會請求merge.js。2、我載入頁面後,出現了script標籤,然後它去伺服器請求腳本。所以是2次請求。

所以代碼中有缺陷,我對於所有過來的請求,我都響應了同樣的內容回去,沒做過濾區分:

我們將代碼做路由區分,返回不同的內容。

在重新運行一次伺服器:

合併腳本生效,查看下merge.js:

源碼顯示正確,合併成功,看下網路面板:

請求的確實是merge.js,而且只有一個,看一下項目的目錄:

原先的腳本並沒破壞,源碼還在。

這樣子我們在請求的時候通過合併腳本,我們減少了請求數,在開發的時候,還是可以按照模塊文件,局部維護、升級。

這就是性能優化中,減少請求數的一種做法。


推薦閱讀:

TAG:Nodejs | 前端開發 | 前端性能優化 |