简介
根据雅虎卓越性能团队的说法,40%到60%的雅虎用户拥有空闲缓存体验,所有页面浏览量中约有20%是使用空缓存完成的(请参阅Tenni Theurer在YUIBlog上的这篇文章)有关浏览器缓存使用的更多信息)。这一事实概述了保持网页尽可能轻量化的重要性。改进页面或Web应用程序的工程设计通常会带来最大的节省,而且应始终是主要策略。通过正确的设计,有许多提高性能的辅助策略,例如缩小代码,HTTP压缩,使用CSS sprite等。
在代码缩小方面,最广泛使用的缩小JavaScript代码的工具是Douglas Crockford的 JSMIN, Dojo压缩器和Dean Edwards的 Packer。然而,这些工具中的每一个都具有缺点。例如,JSMIN不会产生最佳节省(由于其简单的算法,它必须在代码中留下许多换行符以便不引入任何新的错误)。
JavaScript和CSS缩小的目标始终是保持代码的操作质量,同时减少其整体字节占用空间(无论是原始术语还是gzipping之后,因为生产Web服务器提供的大多数JavaScript和CSS都作为HTTP协议的一部分进行了压缩)。YUI Compressor是JavaScript minizer,设计为100%安全,压缩率高于大多数其他工具。与JSMin相比,YUI库的测试节省了20%以上(在HTTP压缩后变为10%)。YUI Compressor还能够通过使用Isaac Schlueter基于正则表达式的CSS缩小器的端口来压缩CSS文件。
download
https://github.com/yui/yuicompressor/releases
直接下载jar包即可。
work
YUI Compressor是用Java编写的(需要Java> = 1.4)并依赖Rhino来标记源JavaScript文件。它首先分析源JavaScript文件,以了解它的结构。然后它打印出令牌流,省略尽可能多的空格字符,并用任何适当的替换方式替换所有本地符号1(或2或3)字母符号
cmd
以下命令行(xyz表示版本号):
$ java -jar yuicompressor-xyzjar my.js -o my.min.js
将缩小文件myfile.js并输出文件myfile-min.js。有关如何使用YUI Compressor的更多信息,请参阅存档中包含的文档。
charset参数并不总是必需的,但如果文件的编码与系统的默认编码不兼容,压缩器可能会抛出错误。特别是,如果您的文件以utf-8编码,则应提供参数。
$ java -jar yuicompressor-xyzjar myfile.js -o myfile.min.js --charset utf-8