JSA发布了新版本
1. 增加了对全局变量混淆的设置
2. 公开了部分API调用接口。
3. 方便于二次开发
在开发Javaeye3.0的过程中,我们也采用了JSA作为JS的压缩工具,它的效果和可靠性是目前同类开源工具中最好的。对JSA压缩过的脚本再开启服务端的GZip压缩,平均压缩效果可以达到30%左右,对于一些比较大的JS有非常明显的效果。
JSA 压缩时的常见问题
1。保留字滥用
如果你的脚本中存在某些保留字或者关键字属性甚至变量名,那么,对不起,您的脚本无法正常解析。
虽然大多数浏览器在这个时候会对你宽大处理,但是JSA不能,比如新浪编辑器里有一个float属性(其实那是错误写法,正确写法应该为
styleFloat)
2。严格的正则语法
JSA使用的是Rhino语法解析器,在正则处理时,哪怕在[]号内,依然需要对全部特殊字符转义。否则可能会出错。
比如,如下表达式:
/[/]/.test('/')
它在大多数浏览器上,都能通过。
但是Rhino解析器,则无法通过。
我粗略过了一下ECMA规范的语法说明,这一点应该算Rhino实现的bug。
引用:
ClassAtomNoDash ::
SourceCharacter but not one of/ ] -
/ ClassEscape
其它集合:Javascript压缩/Javascript compressed/crunched
开发Ajax除了自己要写js代码外,同样也免不了要使用其它第三方js库,是否该为JavaScript减肥?
当你提高了用户体验,做出了很绚丽的效果而欣喜的时候,是否想过优化一下JS的效率,比如微软的live,其中的js做了压缩处理。JS的速度分为两种,下载速度和执行速度。今天就先来说说下载速度。要想js的下载速度快,就需要尽量减小js文件的大小。这里我们可以使用一个工具ESC(ECMAScript cruncher)来帮我们完成这个工作,不过这个工具只能在Windows下使用。到
http://www.saltstorm.net/depo/esc/introduction.wbm?pod=js下载
ESC.zip,解压后看看它的帮助文档。很简单。
http://dean.edwards.name/packer/ 在线压缩
A Online JavaScript Compressor/Obfuscator version
Also available as a .NET application
开源下载: http://dean.edwards.name/download/#packer
压缩器帮助:http://dean.edwards.name/packer/usage/
http://dean.edwards.name/packer/usage/sample.html
http://hometown.aol.de/_ht_a/memtronic/
JavaScript Compressor/Obfuscator Demo:
http://www.brainjar.com/js/crunch/demo.html
JavaScript Code Improver:
JavaScript Code Improver Download
YUI Compressor Maven Plugin Maven
http://www.intellij.org.cn/portal/index.php?option=com_content&task=view&id=283
Else : JSMin,ShrinkSafe,jsMinifier,
native2ascii
关于JavaScript的gzip静态压缩方法
传统的JS压缩提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的Content-Encoding=gzip),可以通过服务器的配置(如apache)为你的js提供压缩传输,或是appfuse中使用的GZipFilter使tomcat也提供这种能力,现在的问题是这种动态的压缩会导致服务器CPU占用率过高,现在我想到的解决辨法是通过提供静态压缩(就是将js预先通过gzip.exe压缩好).
--- Javascript压缩工具 Javascript compressed,Js压缩 [ http://www.ad0.cn/netfetch/read.php/821.htm]
使用YUI Compressor压缩Javascript和CSS
http://www.firefox.net.cn/newforum/viewtopic.php?t=20807
Online Dojo JavaScript Compressor, Dojo ShrinkSafe.