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

  介绍

  这篇文章介绍了一个工具,用于压缩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%,但是这有是个高风险的几率会破坏脚本。所以这个选项不是默认选上的,如果选上,推荐您在发布程序之前将所有压缩的代码重新通过测试。

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

  DEMO下载:http://www.codeproject.com/KB/cs/jscompress/JSCompress.zip

转载请注明:代码家园 » 一个不错的javascript压缩工具[译]

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)