脚本分析、压缩、混淆工具 JSA新版本发布,压缩效率提高大约10%_javascript技巧

SA 1.0 Alpha发布,压缩效率提高大约10%
压缩算法改进:

    实现了自己的文本压缩算法

        * 提高了压缩比率以及解压效率。

    优化了语法压缩

        * 合并连续var申明,
        * 删除了多余var申明,
        * 删除了多余大括弧({、}),
        * 删除了多余分号(;)。

UI改进:

    * 自动编码识别
    * 支持文件拖放
    * 支持JAVA1.4.2+ 当jar打开方式为java时,可双击运行,但,若JAR打开方式被修改(如winrar),请使用如下方式:
      CMD>java -jar xx.jar
    * 格式化
      注释只能在各语句之间,插在语句中间的注释有可能丢失,在格式化的时候,算bug吧。
    * 压缩参数设置
      操作->设置:
      执行语法压缩:将替换局部变量,删除冗余语法。
      执行文本压缩:将脚本文本分词、替换压缩。执行时可通过eval( 解压函数() )方式还原。
      兼容IE5、NS3:老版本的浏览器对正则表达式支持优先,是否需要兼容他们(需要采用稍微复杂一点的解压函数)。
      执行文本压缩的条件设置:设置何时采用文本压缩,有两项,比率要求和大小要求;因为eval是需要额外开销的,所以,只有当文本压缩的比率小于指定值且文件大小大于指定值时才采用文本压缩。

ANT Task

    * 默认编码 :取JRE的默认编码,可能随机器不同而改变,所以,推荐手动指定器编码方式(eg:charset="utf-8"/charset="GBK")
    * jsicompile 任务:编译JSI (压缩,预装载编译,定制启动文件)
    * jscompress 压缩脚本

ANT Task 示例
jsicompiler 示例(处理JSI及其集成的第三方脚本)
xml 代码 

复制代码 代码如下:

<target name="compress" depends="init">    
    <jsicompile destDir="ant/temp/scripts" rebuildboot="true" charset="utf-8">    
        <fileset dir="web/scripts">    
            <include name="*/**/*.*" />    
            <include name="*.*" />    
            <exclude name="preload/**" />    
        </fileset>    

        <preloadgroup path="code-decorator.js">    
            <fileset dir="web/scripts">    
                <include name='js/io/__$package.js' />    
                <include name='js/io/request.js' />    
                <include name='js/io/writer.js' />    
                <include name='js/xml/__$package.js' />    
                <include name='js/xml/template.js' />    
                <include name='js/xml/tag.js' />    
                <include name='js/util/__$package.js' />    
                <include name='js/util/collections.js' />    
                <include name='org/xidea/syntax/__$package.js' />    
                <include name='org/xidea/syntax/syntax-parser.js' />    
                <include name='org/xidea/decorator/__$package.js' />    
                <include name='org/xidea/decorator/code.js' />    
            </fileset>    
        </preloadgroup>    
    </jsicompile>    
</target> 

   
jscompress 示例(压缩普通脚本)   
xml 代码  

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

时间: 2024-08-04 06:42:43

脚本分析、压缩、混淆工具 JSA新版本发布,压缩效率提高大约10%_javascript技巧的相关文章

几款极品的javascript压缩混淆工具_javascript技巧

个人首推MemTronic's FREEWARE HTML/JavaScript Cruncher-Compressor v1.0k压缩效果好得不一般,混淆出来的代码完全不可读,压缩率可达50%,IE 5+ / NS 7.0 / Mozilla / Opera 7.0 中均可使用 第二款,我推荐Rob Seiler的packer这款压缩混淆工具效果也不错,有三种版本,.Net,Perl,和WSH版本,Windows平台下WSH脚本比较适合,命令行操作,有详细的说明 第三款,Saltstorm出品

js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)_javascript技巧

问题缘由:负责公司的开发平台研发工作,考虑的知识产权的保护工作,必须要考虑java的加密技术和js脚本的加密技术.在目前java加密很容易破解的情况下,还是先搞定js的加密和压缩,一方面可以提高页面加载性能,另外一方面也希望辛苦研发出来的成果得到一定的保护. 研究过程: 1.先强烈鄙视一下哪些随便转载文章的家伙,给我制造了很大的麻烦!!网上很多帖子都不靠谱.. 2.首先想了解jquery使用什么压缩的, 网上找了半天,说法不一样,后来还是在jquery官网的最频繁问题中找到了答案,但这已经是绕了

浏览器环境下JavaScript脚本加载与执行探析之defer与async特性_javascript技巧

defer和async特性相信是很多JavaScript开发者"熟悉而又不熟悉"的两个特性,从字面上来看,二者的功能很好理解,分别是"延迟脚本"和"异步脚本"的作用.然而,以defer为例,一些细节问题可能开发者却并不一定熟悉,比如:有了defer特性的脚本会延迟到什么时候执行:内部脚本和外部脚本是不是都能够支持defer:defer后的脚本除了会延迟执行之外,还有哪些特殊的地方等等.本文结合已有的一些文章以及MDN文档中对两个特性的阐述,对de

Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)_javascript技巧

今天我们来看看如何让拖拽的物体不能拖出某个div之外和拖拽的吸附功能 上次讲到我们的拖拽是不可拖出可视区范围的,在这基础上我们加个父级的div,不让他拖出父级.原理和之前的一样,简单吧. html代码: <div id="div2"> <div id="div1"> </div> </div> css代码: <style type="text/css"> #div1 { width: 1

一个js随机颜色脚本(用于标签页面,也可用于任何页面)_javascript技巧

看见有人要这个东西,发上来.237个字节的东西.很小吧? 把下面代码添加到tag.asp的<div id="mainContent-bottomimg">前面即可. 这么简单的问题就别问什么问题了. 其实你也可以添加到header.asp或footer.asp中.不过这样你整个页面的全部span区域将全为随机颜色了. 演示 http://www.hljsh.com/tag.asp 效果是一样的.不过我的演示是用asp实现的.我发的是用JS实现的.效果一样. 复制代码 代码如

Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)_javascript技巧

今天我们就来解决上一次拖拽雏形中的一些问题.下面看看有哪些问题? 附上上期的Javascript代码,方便大家查看问题. <script type="text/javascript"> window.onload = function() { var oDiv = document.getElementById("div1"); var disX = 0; var disY = 0; oDiv.onmousedown = function(ev) { v

js表格排序实例分析(支持int,float,date,string四种数据类型)_javascript技巧

本文实例讲述了js表格排序的方法.分享给大家供大家参考.具体如下: <html> <head> <title>SortTable2</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var k=0; /**//*

Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)_javascript技巧

拖拽的原理: 其实就是鼠标与左上角的距离保持不变.我们来看下图, 这红点就是鼠标. 拖拽拖拽实际上来说就是通过鼠标的位置来计算物体的位置,就是这么简单,就是这么任性. 那这个距离怎么求呢?? 鼠标的位置-物体位置的差值就是那个距离 是吧.那这个斜线就是横线和竖线组成的. 我们距离看下程序怎么做. <div id="div1"> </div> 实际上他改的就是某个div 的left top ,那他就动起来了. 那样式中肯定要有绝对定位是吧. <style t

Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)_javascript技巧

我们看看之前的拖拽在周围有东西的时候会出现什么问题? 在高级浏览器中不会有啥问题,我们放到IE7下面测试一下,问题就出来了.如图 我们可以很清楚的看到,文字都已经被选中了.那这个用户体验很不好,用起来也不方便.顺便提一下,我们之前加了一个return false;帮我们解决了很多问题,如果去掉这个的话,chrome也会出现一样的问题.那么也就是说这个return false;可以解决chrome ff IE9+ 这些浏览器的问题. 实际上在我们开发中,页面上会有许多的元素组成,不可能就一个div