JS,html压缩及混淆工具
现在已经出现了不少有自己特色的:
- JSMin
- Javascript compressor
- Packer
- Closure Compiler
- YUI Compressor
- Pretty Diff
- JavaScript Optimizer
- pack:tag
- Minify
- Lightweight
- CssMin
- jsmin-php
- MiniME
- ShrinkSafe
- Granule
- JAWR
- CombineAndMinify
- CrunchMe
有些太简单的、基于某主流思路仿写(但又未能超越原作的更新版本)的或者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工具,可以在线进行压缩。它的使用很简单:
- 进入网站
- 粘贴要压缩的代码
- 执行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压缩及混淆工具的更多相关文章
- JS的压缩、混淆、加密
参考: 博客园:js压缩.混淆和加密 知乎:前端如何给 JavaScript 加密(不是混淆)? (阿里聚安全有回答问题) 站长工具 (在线JS压缩加密工具) Obfuscator (在家JS压缩 ...
- 折腾一两天,终于学会使用grunt压缩合并混淆JS脚本,小激动,特意记录一下+spm一点意外收获
很长时间没有更新博客了,实在是太忙啦...0.0 ,以下的东西纯粹是记录,不是我原创,放到收藏夹还担心不够,这个以后常用,想来想去,还是放到这里吧,,丢不了..最后一句废话,网上搜集也好原创也罢,能解 ...
- js压缩、混淆和加密
最近看到有些论坛在讨论js压缩.混淆和加密的问题,特意找了些资料看了下,现在总结一下: 1.关于三者的定义与区别 压缩:删除 Javascript 代码中所有注释.跳格符号.换行符号及无用的空格,从而 ...
- 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】
信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...
- 几种常见的JavaScript混淆和反混淆工具分析实战
几种常见的JavaScript混淆和反混淆工具分析实战 xiaix2016-03-05+8共1195751人围观 ,发现 5 个不明物体WEB安全 信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试 ...
- 【JS代码压缩】使用YUI Compressor对js文件进行压缩处理
概述 在使用html5开发Hybird APP的时候,可能会引入大量的js包,另外对于一些核心的js文件,进行一些特殊的处理, 如压缩和加密就显得很重要了,YUI Compressor就是这样一个用于 ...
- Java代码混淆工具ProGuard
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...
- require.js 加载 vue组件 r.js 合并压缩
https://www.taoquns.com 自己搭的个人博客 require.js 参考阮一峰 Javascript模块化编程(三):require.js的用法 r.js 合并压缩 参考司徒正美 ...
- 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具
认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...
随机推荐
- WHMCS系统API调用
WHMCS:域名管理系统,现在网络上很多借助此系统Shadowsocks插件+ShadowsocksR多用户服务端进行VPN的售卖,能做到流量控制等. 在对接此系统的API时,我发现了很多功能都已经实 ...
- AutoIt3(AU3)开发的分辨率快速设置工具
项目相关地址 源码:https://github.com/easonjim/Resolution_Settings bug提交:https://github.com/easonjim/Resoluti ...
- ExceptionLess异常日志收集框架-1
哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...
- 执行查询报: Incorrect key file for table ‘test’; try to repair it
报错信息如下:程序没有错误,但执行会报错,错误定在执行语句上 查了一下资料 网上的解决办法,亲试可用: mysql> use news;Database changedmysql> rep ...
- 百度云管家 5.3.6 VIP破解不限速版下载分享|百度云管家破解提速
百度云管家PC客户端v5.3.6绿色版本,属于VIP破解不限速版.百度网盘为您提供文件的网络备份.同步和分享服务.空间大.速度快.安全稳固,支持教育网加速,支持手机端.它支持便捷地查看.上传.下载云端 ...
- json转换成对象
在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...
- wpf 保存控件中的内容为图片格式
黄色的是wpf控件的名称! //保存到特定路径 FileStream fs = new FileStream(@"C:\image.png", FileMod ...
- webstorm9.3 安装less 编译css教程
第一步:安装node.js webstrom9.3汉化下载:http://pan.baidu.com/s/1ntGNNiL 密码:1fbh node.js 下载地址:https://nodejs ...
- python 读取 redis -安装redis-py
先下载 https://github.com/andymccurdy/redis-py 到本地 然后打开 Cmd.exe 进入当前目录 后执行 执行成功后,在python里检测 没有任何错误提示 就 ...
- IBatis分页显示
<select id="pagedListOrderOpen"> SELECT * FROM ( </select> <sql id="pa ...