一个高效的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 相关文章推荐
jquery 如何动态添加、删除class样式方法介绍
Nov 07 Javascript
查看图片(前进后退)功能实现js代码
Apr 24 Javascript
js复制网页内容并兼容各主流浏览器的代码
Dec 17 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
JS实现的表格行上下移动操作示例
Aug 03 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
Vue学习笔记进阶篇之单元素过度
Jul 19 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
禁止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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
js实现时间日期校验
2020/05/26 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
使用python实现链表操作
2018/01/26 Python
Django实现学员管理系统
2019/02/26 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Java如何支持I18N?
2016/10/31 面试题
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
2014年检验员工作总结
2014/11/19 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
论语读书笔记
2015/06/26 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript