一个高效的JavaScript压缩工具下载集合


Posted in Javascript onMarch 06, 2007

与其他压缩工具压缩率比较: 
1. JavaScript Compressor(http://dean.edwards.name/packer/ ) 
    与他自己的压缩工具代码为例(v2.02) packer压缩后大小为 7,428 字节(去除注释)。 
    而我们的压缩工具可以压缩至7,256  字节 
     7256 / 7428 = 0.9768443726440496 
2.Dojo ShrinkSafe (粗糙的东西,既低效又危险,建议原有用户赶紧换掉) 
    与他自己的框架源代码为例(v0.4.1): 
    他自己压缩大小为149,518 字节,而我们压缩后可以缩小至81,261 字节 
     81261 / 149518 = 0.5434864029748927 

安全性说明:
 1.JavaScript Compressor  TBCompressor(YUI Compressor) 推荐
      基于文本的压缩,我没有细看其中逻辑,但是这种压缩出问题的可能性很低,我们的压缩工具也使用到他的压缩算法,在JSI 1.1 a8 及 
其集成的第三方类库的测试中,未见异常。而且还有知名框架JQuery使用,相信不会有问题。 

2.Dojo ShrinkSafe 危险!!!!! 
   使用较短的名字替换掉长的局部变量名,这是一个极其不安全的压缩工具,举例说明: 

java 代码

function(){  
  var withObject = {variable1:1}  
  var variable1 = 2;  
  with(withObject){  
    alert(variable1);  
  }  
}  

将压缩成 
java 代码

function(){  
var _1={variable1:1};  
var _2=2;  
with(_1){  
alert(_2);  
}  
}  

这明显是错误的,这个垃圾没有注意javascript某些特殊语法,和动态性。 
对eval函数,catch操作,with语句,都未作任何处理。 
相比之下JSA的是当前我知道的最安全最有效的压缩工具。 
JSA 不仅提供代码压缩功能,还可以做格式化,脚本分析。 

脚本分析功能可以用于查看脚本信息,以及查找脚本中的潜在问题。 
比如查看脚本中申明了那些函数,变量。 
使用了那些外部变量。等等。。。

JSA的压缩过程分两步,第一步是语法压缩,类似于Dojo ShrinkSafe,但比他安全,也比他有效。

第二步是文本压缩,目前采用的是
JavaScript Compressor的压缩算法。
(http://dean.edwards.name/packer/ )

这些都可以在设置窗口设置。

默认情况先用语法压缩,当文件大于1000k且采用文本压缩仍然可以压缩到原来大小90%时才在原来基础上采用文本压缩。

下载地址:
http://sourceforge.net/project/showfiles.php?group_id=175776
或者
http://forum.xidea.org文件列表

Javascript 相关文章推荐
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
基于javascript实现listbox左右移动
Jan 29 Javascript
js中通过getElementsByName访问name集合对象的方法
Oct 31 Javascript
详解jQuery事件
Jan 13 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
ES6 Map结构的应用实例分析
Jun 26 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
禁止F5等快捷键的JS代码
Mar 06 #Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 #Javascript
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
Mar 06 #Javascript
javascript实现划词标记+划词搜索功能
Mar 06 #Javascript
用一段js程序来实现动画功能
Mar 06 #Javascript
用javascript动态调整iframe高度的方法
Mar 06 #Javascript
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 #Javascript
You might like
怎么使 Mysql 数据同步
2006/10/09 PHP
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
javascript Keycode对照表
2009/10/24 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python字符串循环左移
2019/03/08 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
AUC计算方法与Python实现代码
2020/02/28 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
2015年初中教务处工作总结
2015/07/21 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
MyBatis 动态SQL全面详解
2021/10/05 MySQL