日期:2014-05-16  浏览次数:20368 次

javascript脚本压缩工具JSEncoder实现(转)
javascript脚本压缩工具JSEncoder实现

1、算法原理:
从javascript脚本文件中提取单词,存入字典表中,这里使用|分割的字符串,然后将单词对应的序号(仿base64编码值)写入原来代码的地方,形成压缩后的js代码

2、压缩效果:
jquery-1.2.3.js原始文件大小95kb->[其他工具处理,去掉回车、注释等]jquery-1.2.3.min.js,大小53kb
=>本文工具压缩后:32kb

3、可选其他工具:
JSA 2.0 pre-alpha
http://sourceforge.net/project/showfiles.php?group_id=175776
packer:http://dean.edwards.name/packer/

4、下载(包含源代码在jar文件中)
2008.4 Ver:0.5? 下载

5、源代码
java代码如下,写完代码之后才发现这是JSA(http://sourceforge.net/project/showfiles.php?group_id=175776)的压缩算法的再实现,不过好像作者没有开源,
本文算作是一种技术上的研究了。
通过对jquery-1.2.3.min.js http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.3.min.js
进行压缩测试通过,压缩率>40%.

??1
??3import?java.io.BufferedReader;
??5import?java.io.IOException;
??7import?java.util.regex.Pattern;
??9import?java.text.DecimalFormat;
?11/**?*//**
?13?*?<p/>
?15?*?针对jquery-1.2.3.min.js这个文件的压缩比率结果比较如下
?17?*?原始大小?|?JSEncoder?|?JSA-20071021(2.0?pre-alpha)?|??jquery?packer算法
?19?*?53kb???|?32kb???????|??29kb???????????????????????|????29kb
?21?*?因为JSA进一步将局部变量进行了压缩,因此相比较更小
?23?*?<p/>
?25?*?User:?(在路上?*?Date:?2008-4-18
?28?