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 相关文章推荐
js 获取浏览器高度和宽度值(多浏览器)
Sep 02 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
jQuery表单验证之密码确认
May 22 jQuery
Angular.js中数组操作的方法教程
Jul 31 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
vue router-link 默认a标签去除下划线的实现
Nov 06 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 文件类型判断代码
2009/03/13 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php curl模拟post请求小实例
2013/11/13 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
layui的select联动实现代码
2019/09/28 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
python获取当前日期和时间的方法
2015/04/30 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
Python错误处理操作示例
2018/07/18 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
优秀乡村医生事迹材料
2014/05/28 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
社区文明倡议书
2015/04/28 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL