作者:
核桃博客 |
本文网址 :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行!