Javascript混淆并用gzip壓縮后,可以把300K的js壓縮到40K左右.
1) 打開(kāi)bin/gzjs.bat修改第一行路徑為本地文件系統(tǒng)絕對(duì)路徑
2) 執(zhí)行批處理文件bin/gzjs.bat
DWZ混淆工具 bin/ESC.wsf
壓縮級(jí)別分為5種,從0到4
Level 0 :: No compression
Level 1 :: Comment removal
Level 2 :: Whitespace removal
Level 3 :: Newline removal
Level 4 :: Variable substitution
在WINDOWS命令行下執(zhí)行
cscript ESC.wsf -ow menu2.jsmenu.js將會(huì)把menu.js按照js壓縮級(jí)別2來(lái)壓縮(默認(rèn)js壓縮級(jí)別為2)為menu2.js
cscript ESC.wsf -l 3 -owmenu3.js menu.js將會(huì)把menu.js按照js壓縮級(jí)別3來(lái)壓縮為menu3.js
需要注意的是,js壓縮級(jí)別4會(huì)把變量名修改,如果你的js中用到了全局變量或者類(lèi)的話(huà),就不能使用該壓縮級(jí)別了,否則其它使用你的js的文件可能會(huì)無(wú)法正常運(yùn)行。
動(dòng)態(tài)的壓縮會(huì)導(dǎo)致服務(wù)器CPU占用率過(guò)高,現(xiàn)在我想到的解決辨法是通過(guò)提供靜態(tài)壓縮(就是將js預(yù)先通過(guò)gzip.exe壓縮好)
傳統(tǒng)的JS壓縮(刪除注釋,刪除多余空格等)提供的壓縮率有時(shí)還是不盡不意,幸虧現(xiàn)在的瀏覽器都支持壓縮傳輸(通過(guò)設(shè)置http header的Content-Encoding=gzip), 可以通過(guò)服務(wù)器的配置(如apache)為你的js提供壓縮傳輸 .
Apache配制
在httpd.conf中加入配制,這樣瀏覽器可以自動(dòng)解壓縮.gzjs
LoadModule mime_modulemodules/mod_mime.so
AddEncoding x-gzip .gzjs .gzcss
在index.html中移除全部dwz.*.js,引入下面2個(gè)js庫(kù)
<script src="bin/dwz.min.js"type="text/javascript"></script>
<script src="javascripts/dwz.regional.zh.js" type="text/javascript"></script>
dwz.*.js打包到dwz.min.js步驟:
1) 打開(kāi)bin/gzjs.bat 修改第一行路徑為本地文件系統(tǒng)絕對(duì)路徑
2) 執(zhí)行批處理文件bin/gzjs.bat
使用時(shí)引入以下js:
javascripts/speedup.js 【可選】js加速
javascripts/jquery-1.4.4.js 【必須】jQuery庫(kù)
javascripts/jquery.cookie.js 【可選】js操作cookie, 目前用于記住用戶(hù)選擇的theme風(fēng)格
javascripts/jquery.validate.js 【必須】表單驗(yàn)證
javascripts/jquery.bgiframe.js 【可選】用于IE6彈出層不能蓋住select問(wèn)題
xheditor/xheditor-zh-cn.min.js 【可選】xheditor在線(xiàn)編輯器
uploadify/scripts/swfobject.js 【可選】用于文件批量上傳
uploadify/scripts/jquery.uploadify.v2.1.0.js 【可選】用于文件批量上傳
bin/dwz.min.js 【必須】 DWZ框架js壓縮包
javascripts/dwz.regional.zh.js【可選】 用于國(guó)際化
更多建議: