作者: 核桃博客 |
本文 網址 :http://www.hetaoblog.com/javascript-compressor-dojo-compressor/
關於javascript壓縮工具,在之前的網 站性能優化工具-javascript壓縮工具JSMin 中介紹過一個javascript(js)壓縮工具JSMin, 昨天在
javascript 壓縮工具-YUI-compressor 介紹了YUI compressor,
這裏,再介紹一個同樣流行的javascript壓縮工具Dojo compressor,;該工具由著名的Dojo項目組出品;
Dojo compressor也是用java寫的,運行這個同樣需要JRE環境:
到這個地址下載Dojo compressor
http://o.dojotoolkit.org/docs/shrinksafe
兩個jar完成了該功能:
shrinksafe.jar和Rhino [在 dojo的網站上目前鏈接了Rhino 1.7R1版本]
下載後,解壓,到build目錄下,在安裝好JRE環境後,在命令行下輸入:
java -jar shrinksafe.jar infile.js > outfile.js
input.js就是你需要壓縮的js源文件,output.js就是需要的輸出文件,
這時,就會輸出output.js;
我以在之前網 站性能優化工具-javascript壓縮工具JSMin 中使用的JSMin的官方網站的樣本程序作爲input.js // 這裏幾篇關於javascript壓縮的文章都使用同樣的input.js
var is = {
ie: navigator.appName == ‘Microsoft Internet Explorer’,
java: navigator.javaEnabled(),
ns: navigator.appName == ‘Netscape’,
ua: navigator.userAgent.toLowerCase(),
version: parseFloat(navigator.appVersion.substr(21)) ||
parseFloat(navigator.appVersion),
win: navigator.platform == ‘Win32′
}
is.mac = is.ua.indexOf(‘mac’) >= 0;
if (is.ua.indexOf(‘opera’) >= 0) {
is.ie = is.ns = false;
is.opera = true;
}
if (is.ua.indexOf(‘gecko’) >= 0) {
is.ie = is.ns = false;
is.gecko = true;
}
使用Dojo compressor壓縮後,輸出的output.js是
var is={ie:navigator.appName==”Microsoft Internet Explorer”,java:navigator.javaEnabled(),ns:navigator.appName==”Netscape”,ua:navigator.userAgent.toLowerCase(),version:parseFloat(navigator.appVersion.substr(21))||parseFloat(navigator.appVersion),win:navigator.platform==”Win32″};
is.mac=is.ua.indexOf(“mac”)>=0;
if(is.ua.indexOf(“opera”)>=0){
is.ie=is.ns=false;
is.opera=true;
}
if(is.ua.indexOf(“gecko”)>=0){
is.ie=is.ns=false;
is.gecko=true;
}
這裏發現Dojo Compressor的壓縮率是最差的,
對比JSMin和YUI Compressor的輸出,用UltraEdit打開可以看到,YUI Compressor壓縮後只有1行,JSMin壓縮後仍然有4行, Dojo Compressor居然有10行!