node.js-腳本合併
02-23
瀏覽器端的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,而且只有一個,看一下項目的目錄:
原先的腳本並沒破壞,源碼還在。
這樣子我們在請求的時候通過合併腳本,我們減少了請求數,在開發的時候,還是可以按照模塊文件,局部維護、升級。
這就是性能優化中,減少請求數的一種做法。
推薦閱讀: