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 未结束的字符串常量错误解决方法
Jun 13 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
javascript学习笔记(十四) window对象使用介绍
Jun 20 Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 Javascript
写出高效jquery代码的19条指南
Mar 19 Javascript
分享15个大家都熟知的jquery小技巧
Dec 02 Javascript
AngularJS实现按钮提示与点击变色效果
Sep 07 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
使用ajax的post同步执行(实现方法)
Dec 21 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
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 header函数分析详解
2011/08/06 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
JS实现放大镜效果
2020/09/21 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python中反射用法实例
2015/03/27 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
国外软件测试工程师面试题
2016/12/09 面试题
出生公证委托书
2014/04/03 职场文书
银行职员自我鉴定
2014/04/20 职场文书
五一劳动节活动总结
2015/02/09 职场文书
承诺书模板大全
2015/05/04 职场文书
用Python生成会跳舞的美女
2022/01/18 Python
vue使用echarts实现折线图
2022/03/21 Vue.js