2011年5月27日 星期五

縮小我的 javascript 大小

近日看好幾個 open source 的程式,他們不約而同的都習慣將 xxx_src.js 另外再寫一支 xxx.js 。理由何在,就是要縮小 javascript 的檔案大小,這樣一來,使用者在讀取網頁時,也會因為所需下載的 javascript 檔比較小,而加快網頁傳送速度。xxx.js 是經過壓縮後的檔案,對於 javascript 檔而言,所謂的「壓縮」,僅僅去除多餘的空白甚至是註解而已,用以減少檔案的大小。但是,經過壓縮過後的 javascript,相對也會造成「閱讀不易」的缺點,所以這幾個 open source 的作法,就是同時保留原始的程式 xxx_src.js 與 壓縮過的 xxx.js 。而程式實際上的運行,當然是使用 xxx.js 。只是日後有任何修改需求時,需要先去修改 xxx_src.js ,然後再將他進行壓縮後,把結果放到 xxx.js 。

在網路上,目前有看到兩個不錯的線上壓縮 javascript 的網站,經過測試後,效果都還不錯。分別是 javascriptcompressor 與 YUI Compressor。

javascriptcompressor:預設的處理方式,會將原始程式多餘的空白、註解都刪除。但如果你還想進一步縮小的話,他有一個 「Shrink variables」選項可以勾選,打勾後你會發現,他連程式裡面函數的參數名稱,都會用最簡單的方式來取代。譬如說,你有個函式: function iNeed(woman,lady,spicy_girl) ,壓縮後的結果,就會變成 function iNeed(a,b,c) ,由原本 37 個字元變成 21 個字元。


YUI Compressor:預設的處理方式,會將原始程式多餘的空白、註解都刪除,並將函數的參數名稱,用最簡單的方式來取代。但如果你不希望函數裡的變數被取代時,可以將 JavaScript Options 裡的 「Minify only, no symbol obfuscation.」這選項打勾,這樣就可以避免變數名稱被替換。

參考:
01:http://javascriptcompressor.com/
02:http://refresh-sf.com/yui/

沒有留言:

張貼留言