关注开源代码的实际应用
通常在一个 Web 2.0 应用中,会有很多业务逻辑相关的 JS 代码,而且很多逻辑从后台搬到了客户端执行,因此这部分客户端代码非常多。为了提供更快的响应速度,典型的做法是压缩所有客户端需要加载的资源包括图 片,HTML 文件,CSS 文件,JS 代码等等,而图片文件已经无法再进行压缩,只有 HTML,CSS,JS 等文本文件有进一步压缩的空间。
进行JavaScript文件压缩的工具比较多:Douglas Crockford的JSMIN、the Dojo compressor、Dean Edwards的Packer、YUI Compressor
the Dojo compressor shrinksafe 之所以称其“safe”,是因为它在压缩了 JS 文件以后,不会改变其对象内部方法和属性名称,引用到该段代码的地方不需要任何更改,还是可以直接调用其内部方法和属性。在 custom_rhino.jar 所在的目录运行 java –jar custom_rhino.jar –version 100 可以进入 rihno 的命令行状态。

压缩一个 JS 文件的命令如下:
java -jar custom_rhino.jar -c infile.js > outfile.js
经测试,一个 JS 文件经过这样的命令压缩后,可以减小 30% 左右,将压缩后的文件放回系统中,对该 JS 文件的功能调用没有任何影响。
YUI Compressor不但可以压缩JavaScript还可以压缩CSS,用法:
- Usage: java -jar yuicompressor-x.y.z.jar [options] [input file]
- Global Options
- -h, --help Displays this information
- --type <js|css> Specifies the type of the input file
- --charset <charset> Read the input file using <charset>
- --line-break <column> Insert a line break after the specified column number
- -v, --verbose Display informational messages and warnings
- -o <file> Place the output into <file>. Defaults to stdout.
- JavaScript Options
- --nomunge Minify only, do not obfuscate
- --preserve-semi Preserve all semicolons
- --disable-optimizations Disable all micro optimizations
JSMIN可以通过“Javascript精简压缩”进行在线压缩
Packer可以通过“Javascript混淆打包”进行在线压缩