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


Posted in Javascript onJanuary 29, 2013

问题缘由:负责公司的开发平台研发工作,考虑的知识产权的保护工作,必须要考虑java的加密技术和js脚本的加密技术。在目前java加密很容易破解的情况下,还是先搞定js的加密和压缩,一方面可以提高页面加载性能,另外一方面也希望辛苦研发出来的成果得到一定的保护。

研究过程
1、先强烈鄙视一下哪些随便转载文章的家伙,给我制造了很大的麻烦!!网上很多帖子都不靠谱。。
2、首先想了解jquery使用什么压缩的, 网上找了半天,说法不一样,后来还是在jquery官网的最频繁问题中找到了答案,但这已经是绕了一大圈之后的事情了。
(a)根据我看到的一些信息,jquery压缩最早是用 Dean Edwards' Packer 进行压缩的,大概是在jquery1.3版本吧(我在一本jquery的书上看到的。)。这个东西出来的比较早,作者好像也是头 大牛,目前是3.0版本,好像是在线版本,我自己把代码去他网站上压缩,无法使用,会出错误。
(b)后面jquery换成yuicompressor 进行压缩,具体哪个版本不太清楚,有篇文章的作者说:他去jquery的svn中找了一下,发现有yuicompressor 的文件,然后他特意用jQuery.js试了一下,处理过的文件和jQuery.min.js一模一样。原帖地址。
(c) 偶滴神啊,最后我在jquery官网找到了这么一段话。How do I compress my code?

内容如下
Generally the best way to do it is to use the Google Closure Compiler (used by jQuery) or YUI compressor. jQuery provides a pre-minified version of jQuery for your convenience.
Packing JavaScript using Dean Edwards' Packer (specifically using the base64 encode) is not recommended, as the client-side decoding has significant overhead that outweighs the file-size benefits.
大致意思是说:jquery用的是google的开源js压缩工具,Google Closure Compiler和YUI compressor 是目前最佳的js压缩方式。 Dean Edwards‘ packer 是不推荐使用的!!

事后感想
1.其实我很早就注意到Google Closure Compiler这个工具了,但是受一个网友的误导,没有去试用。他提出2个理由,一是这东西开源没多久,二是这个会改写和优化你的代码结构且目前有几个严重的问题;我当时一直在找jquery是用什么压缩工具。 TMD这种技术文章中国人写的就是不可信,到处JB乱抄!!很多东西都要看官方网站的文档。
2.Google是一个伟大的公司,它的技术走在非常前沿,YUI之前是雅虎研发的,这几年雅虎业绩不佳,我想Google吸收了当前IT领域很多技术专家,我们应该相信它出品的东西都是精品。

Javascript 相关文章推荐
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
javascript垃圾收集机制与内存泄漏详细解析
Nov 11 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
May 27 Javascript
发布一款npm包帮助理解npm的使用
Jan 03 Javascript
echarts实现折线图的拖拽效果
Dec 19 Javascript
详解Vue中的Props与Data细微差别
Mar 02 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
JS实现简单贪吃蛇小游戏
Oct 28 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 #Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 #Javascript
JavaScript转换农历类实现及调用方法
Jan 27 #Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
Jan 27 #Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 #Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
Jan 27 #Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
Jan 27 #Javascript
You might like
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
Laravel实现表单提交
2017/05/07 PHP
onpropertypchange
2006/07/01 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
flask入门之表单的实现
2018/07/18 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python日志logging模块使用方法分析
2019/05/23 Python
django 简单实现登录验证给你
2019/11/06 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
军训心得体会
2013/12/31 职场文书
学校春季防火方案
2014/06/08 职场文书
暑期培训班策划方案
2014/08/26 职场文书
公证委托书格式
2014/09/13 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
房屋过户委托书范本
2014/10/07 职场文书
党员评议自我评价
2015/03/03 职场文书
Linux安装Docker详细教程
2022/07/07 Servers