[译]一个不错的javascript压缩工具

 原文地址:http://www.codeproject.com/KB/cs/jscompress.aspx
 Demo:http://www.codeproject.com/KB/cs/jscompress/JSCompress.zip

介绍

这篇文章介绍了一个工具,用于压缩javascript 注释,空白行,和其他换行并且随机的混淆了函数参数的排序,混淆了参数名,这样可以减小脚本的体积,可加快页面的加在速度并且减少网络带宽的消耗,同时一个小小的好处是没有了换行和变量名被压缩可以对代码进行轻度的混淆~,加强对随意得到代码并能阅读难度,本工具不能阻止决议使用反编译和重新格式化代码的人,当然(阻止他们)这也不是本工具的目的。

我开发这个工具适用于我自己的asp.net项目的,工具代码是由c#书写,但是只要你也装有.net FrameWork,它可以压缩任务web工程的javascript,下载档里提供的程序是基于visual studio 2003编写的,不过它也可以被Vs 2005打开,转换,和编译.

这里有3条压缩的规则:

  • 空行换行

    这样的换行不会被移除(除非是认为无关紧要的,比如空行)。仅仅注释和无关紧要的的空白字符会被移除,这样可以有一个不错的压缩率,而且可以确保代码不会被破坏。

  • 替换所有换行符

    在这个模式下,被确信安全的换行会被移除.通常这样能减小大约2%-5%的额外压缩,比如,如果行结尾是一个操作符,如:*, /, +, -等,并且在结尾处是分号,那么将移除后面所有拖沓的换行,当然也会遇到其他的情况,结果一样,换行也是一齐移除掉,像这些代码之前的描述等,这个选项尽量保证移除的都是符合情况的,比如忽略了“分号”,且不会把代码搞坏,但是,我不能找到所有的情况,所以如果代码被破坏了,你的h后退去先上面那个模式,如果你很用心,在每句代码后面都写上分号,表明语句的结束,那这个模式应该没有什么问题。

  • 函数的压缩与参数的混淆

    程序界面里,前面2个选项框可以大幅减小脚本的体积,如果选上,大多数函数的参数与变量会被重命名,而且长度可能被缩短,命名规则是a through z, then _a_z, _aa_az, _ba_bz等等,当选项被选上时,脚本体积通常会缩减10%到15%,但是这有是个高风险的几率会破坏脚本。所以这个选项不是默认选上的,如果选上,推荐您在发布程序之前将所有压缩的代码重新通过测试。

 

posted @ 2009-09-23 22:23  茶杯  阅读(1756)  评论(5编辑  收藏  举报