一个高效的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下string.format函数补充
Aug 24 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
小程序实现留言板
Nov 02 Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
JS用最简单的方法实现四舍五入
Aug 27 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
原生js实现碰撞检测
Mar 12 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
react中hook介绍以及使用教程
Dec 11 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
php 分页函数multi() discuz
2009/06/21 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
实例解析php的数据类型
2018/10/24 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
JS常用倒计时代码实例总结
2017/02/07 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
python使用requests.session模拟登录
2019/08/09 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
学生党员思想汇报
2013/12/28 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2016年教师节感言
2015/12/09 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
python实现的web监控系统
2021/04/27 Python