现在已经出现了不少有自己特色的:

有些太简单的、基于某主流思路仿写(但又未能超越原作的更新版本)的或者Bug太多的我就不列出了。比如用PHP实现的某几种,失败的时候往往比成功要多。(Xee:有时候你会发现压缩代码之后,程序运行不正常了,比较压缩这个东西不可能完美!但是我们又不能不用~~)

----------------------------------------------------------------------------------------☜☞--------------------------------------------------------------------------------

Dean Edwards开发的javascript packer是用在jquery相关项目中最多的packer了。通过这个工具,js文件的大小至少能减少到原来的一半,也就是说压缩比在50%以上,而且可以防止js代码被抄袭,真可谓一举两得。

(Xee:但是注意它可能会压缩出错!就像我说的,没有哪个压缩工具能完美,使用小心就好,如我所知道的:Closure Compiler对语法的要求比较严格,会导致一些Hack技巧无法使用。有篇文章就提到:jquery用的是google的开源js压缩工具,Google Closure Compiler和YUI compressor 是目前最佳的js压缩方式。  Dean Edwards‘ packer 是不推荐使用的!!)

我们先来介绍一下什么是JavaScript Packer混淆

packer现在是3.0。它是一个web工具,可以在线进行压缩。它的使用很简单:

  1. 进入网站
  2. 粘贴要压缩的代码
  3. 执行pack

它还有几个选项:Base62 encode和Shrink variables。如果这两个选项不选的话,只是去掉多余的空格,换行,注释之类的。如果选择Base62 encode基本上就不可读了。如果选择Shrink variables可以压缩变量,具体它是如何做的我不清楚,不过体积的确会变小。不过在我压缩jquery.jform.js时,在测试中发现原本应该是ajax的POST方式提交的结果变成了GET方式,太奇怪了。如果换成不压缩的版本就没有问题。因此定位是这个packer的问题。于是我没有选中Base62 encode,而只是选中了Shrink variables,发现在$.ajax的参数中,原本为type的给变成了typf,当我中选中Base62 encode,但没有选中Shrink variables后,一切正常。

所以我的第一个建议是:当运行出错时,去掉Shrink variables试试。

另外我的第二个建议是:每个函数后面一定要有分号(';'),每个语句后面如果不是大括号括起来的,一定要有分号。不然在运行时会说是少分号,很麻烦。
这里讲了怎么能方便地把分号补全。
http://javascriptcompressor.com/forums/p/19/55.aspx#55 这里推荐的办法是在压缩之前先把代码贴到http://www.jslint.com/ 去做检查,查出所有缺分号的地方,手动补上。

现在OpenbookPlatform中的许多js代码我都进行了压缩,甚至把一些常用的放到了一个full.js文件中,这样可以减少文件读取次数,从而提高效率。

Xee:多文件批量压缩:http://dean.edwards.name/download/中寻找wsh版本, WSH 版本可以从命令行操作!也就是自己写个脚本然后可以批量操作!强悍吧!!!!!

Xee:Dean Edwards其他一些作品工具中的cssQuery这个工具,有点意思,相比之下,我还是喜欢jQuery的选择方式。

----------------------------------------------------------------------------------------☜☞--------------------------------------------------------------------------------

最后,有压缩工具怎么解压缩呢?

解压缩(格式化)地址: http://jsbeautifier.org/ & http://lzw.me/pages/demo/jquery_search_suggest_plugin/

<参考:你用哪种 JavaScript Minifier/Packer/Compressor,好用不? & 使用dean的javascript packer的一些体会 & 也谈谈js的压缩,jquery压缩>

JS,html压缩及混淆工具的更多相关文章

  1. JS的压缩、混淆、加密

    参考: 博客园:js压缩.混淆和加密 知乎:前端如何给 JavaScript 加密(不是混淆)?  (阿里聚安全有回答问题) 站长工具  (在线JS压缩加密工具) Obfuscator (在家JS压缩 ...

  2. 折腾一两天,终于学会使用grunt压缩合并混淆JS脚本,小激动,特意记录一下+spm一点意外收获

    很长时间没有更新博客了,实在是太忙啦...0.0 ,以下的东西纯粹是记录,不是我原创,放到收藏夹还担心不够,这个以后常用,想来想去,还是放到这里吧,,丢不了..最后一句废话,网上搜集也好原创也罢,能解 ...

  3. js压缩、混淆和加密

    最近看到有些论坛在讨论js压缩.混淆和加密的问题,特意找了些资料看了下,现在总结一下: 1.关于三者的定义与区别 压缩:删除 Javascript 代码中所有注释.跳格符号.换行符号及无用的空格,从而 ...

  4. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  5. 几种常见的JavaScript混淆和反混淆工具分析实战

    几种常见的JavaScript混淆和反混淆工具分析实战 xiaix2016-03-05+8共1195751人围观 ,发现 5 个不明物体WEB安全 信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试 ...

  6. 【JS代码压缩】使用YUI Compressor对js文件进行压缩处理

    概述 在使用html5开发Hybird APP的时候,可能会引入大量的js包,另外对于一些核心的js文件,进行一些特殊的处理, 如压缩和加密就显得很重要了,YUI Compressor就是这样一个用于 ...

  7. Java代码混淆工具ProGuard

    目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...

  8. require.js 加载 vue组件 r.js 合并压缩

    https://www.taoquns.com 自己搭的个人博客 require.js 参考阮一峰 Javascript模块化编程(三):require.js的用法 r.js 合并压缩 参考司徒正美 ...

  9. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具

    认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...

随机推荐

  1. WHMCS系统API调用

    WHMCS:域名管理系统,现在网络上很多借助此系统Shadowsocks插件+ShadowsocksR多用户服务端进行VPN的售卖,能做到流量控制等. 在对接此系统的API时,我发现了很多功能都已经实 ...

  2. AutoIt3(AU3)开发的分辨率快速设置工具

    项目相关地址 源码:https://github.com/easonjim/Resolution_Settings bug提交:https://github.com/easonjim/Resoluti ...

  3. ExceptionLess异常日志收集框架-1

    哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...

  4. 执行查询报: Incorrect key file for table ‘test’; try to repair it

    报错信息如下:程序没有错误,但执行会报错,错误定在执行语句上 查了一下资料 网上的解决办法,亲试可用: mysql> use news;Database changedmysql> rep ...

  5. 百度云管家 5.3.6 VIP破解不限速版下载分享|百度云管家破解提速

    百度云管家PC客户端v5.3.6绿色版本,属于VIP破解不限速版.百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持教育网加速,支持手机端.它支持便捷地查看.上传.下载云端 ...

  6. json转换成对象

    在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...

  7. wpf 保存控件中的内容为图片格式

    黄色的是wpf控件的名称! //保存到特定路径            FileStream fs = new FileStream(@"C:\image.png", FileMod ...

  8. webstorm9.3 安装less 编译css教程

    第一步:安装node.js webstrom9.3汉化下载:http://pan.baidu.com/s/1ntGNNiL    密码:1fbh node.js 下载地址:https://nodejs ...

  9. python 读取 redis -安装redis-py

    先下载  https://github.com/andymccurdy/redis-py 到本地 然后打开 Cmd.exe 进入当前目录 后执行 执行成功后,在python里检测 没有任何错误提示 就 ...

  10. IBatis分页显示

    <select id="pagedListOrderOpen"> SELECT * FROM ( </select> <sql id="pa ...