该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-04
http://jindw.spaces.live.com/blog/cns!4D0B98F5F0C51177!114.entry 先发一段脚本压缩示例,展示一下JavaScript Analyser 语法压缩和优化功能。
压缩结果(经过格式化,便于查阅):
JSA的压缩过程分两步
与其他压缩工具压缩率比较:
|
|
返回顶楼 | |
发表时间:2007-03-04
如果脚本文件有几百K的话, 那么压缩之后再eval会不会很耗时呢?
|
|
返回顶楼 | |
发表时间:2007-03-05
是否测试过dojo新的javascript compressor,它是基于rhino的,跟shrinksafe不同。
http://dojotoolkit.org/docs/compressor_system.html http://www.dev411.com/blog/2006/07/28/online-dojo-javascript-compressor |
|
返回顶楼 | |
发表时间:2007-03-05
JSA的压缩过程分两步,第一步是语法压缩,类似于Dojo ShrinkSafe,但比他安全,也比他有效。
第二步是文本压缩,目前采用的是 JavaScript Compressor的压缩算法。 (http://dean.edwards.name/packer/ ) 这些都可以在设置窗口设置。 默认情况先用语法压缩,当文件大于1000k且采用文本压缩仍然可以压缩到原来大小90%时才在原来基础上采用文本压缩。 to shinwell 你的担心多余了。 to dev: Online Dojo JavaScript Compressor 就是 Dojo ShrinkSafe 。 说的好听,其实一点都不safe。 如果你觉得火药桶上暖和,那你就多坐一会吧! 下载地址: http://sourceforge.net/project/showfiles.php?group_id=175776 或者 http://forum.xidea.org 文件列表 |
|
返回顶楼 | |
发表时间:2007-03-05
发一段脚本压缩示例,展示一下JSA压缩和优化功能。java 代码
java 代码
|
|
返回顶楼 | |
发表时间:2007-03-05
不知道这个东西有什么大用处?
似乎对于javascript源码保护有点意思。 对于压缩效果而言,如果你的web server开启了zip压缩,则这里的额外优势可能就基本没有了。 |
|
返回顶楼 | |
发表时间:2007-03-05
呵呵,
难道你的web server端zip压缩可以压缩掉代码注释?? 可以删除掉冗余的语法(如上例中的空catch) 那好,你这个server绝对每人敢用了!! 哦,还可以分析源码,给你报告脚本中的语法错误,那好,你这个web server可以转型了:) |
|
返回顶楼 | |
发表时间:2007-03-05
jindw 写道 呵呵,
难道你的web server端zip压缩可以压缩掉代码注释?? 可以删除掉冗余的语法(如上例中的空catch) 那好,你这个server绝对每人敢用了!! 哦,还可以分析源码,给你报告脚本中的语法错误,那好,你这个web server可以转型了:) 这个的确不行。 不过我还是担心这种压缩,会影响代码的正常执行,如果有这种风险,那就要仔细权衡了。 |
|
返回顶楼 | |
发表时间:2007-03-05
Lucas Lee 写道 不过我还是担心这种压缩,会影响代码的正常执行,如果有这种风险,那就要仔细权衡了。 对,我就是应为这个担心才开发这个压缩框架的,以前流行的dojo的压缩工具(只有语法压缩),忽视javascript的某些特殊语法。导致潜在危险。 而jsa 对with catch eval 等做了特别处理。 而且,jsa 的压缩过程必须先坐完整的语法分析,反倒可以提前检查到脚本中潜在的语法错误。 比如,可以在项目打包部署的ant任务中,添加一项,压缩脚本。这样,一来检查了脚本错误,二来优化了脚本大小。 |
|
返回顶楼 | |
发表时间:2007-03-11
没有用过该压缩工作,不过找机会一定试试
个人觉得 jsmin 压缩的效率比较高,网上有相应的压缩比。 其次压缩后可能会出现代码不能执行的问题,该问题主要是因为漏掉 ';'所致,如果在 jslint 上面简单地检查一下,把所有的漏掉的';'加上,应该就没有问题了。 |
|
返回顶楼 | |