`
sxysxy
  • 浏览: 216658 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Javascript开发之js压缩篇

 
阅读更多

YUI Compressor 压缩 JavaScript 的内容包括:

  1. 移除注释
  2. 移除额外的空格
  3. 细微优化
  4. 标识符替换(Identifier Replacement)

YUI Compressor 包括哪些细微优化呢?

  • object["property"] ,如果属性名是合法的 JavaScript 标识符(注:合法的 JavaScript 标识符——由一个字母开头,其后选择性地加上一个或者多个字母、数字或下划线)且不是保留字,将优化为: object.property
  • {"property":123} ,如果属性名是合法的 JavaScript 标识符且不是保留字,将优化为 {property:123} (注:在对象字面量中,如果属性名是一个合法的 JavaScript 标识符且不是保留字,并不强制要求用引号引住属性名)。
  • 'abcd/'efgh',将优化为 "abcd'efgh"。
  • "abcd" + "efgh",如果是字符串相连接,将优化成 "abcdefgh"(注:所有在使用 YUI Compressor 的前提下,对于脚本中的字符串连接,使用连接符 “+” 的效率和可维护性最高)。

对于 JavaScript 最有效的压缩优化,当属标识符替换。

比如:

(function(){
function add(num1, num2) {
return num1 + num2;
}
})();

进行属标识符替换后:

(function(){
function A(C, B) {
return C+ B;
}
})();

再移除额外的空格,最终成了:

(function(){function A(C,B){return C+B;}})();

YUI Compressor 标识符替换仅替换函数名和变量名,那哪些不能被替代呢?

  1. 原始值:字符串、布尔值、数字、null 和 undefined。一般来说字符串占的空间最多,而非数字字面量其次(true、false,null,underfinded)。
  2. 全局变量:window、document、XMLHttpRequest等等。使用最多的就是 document、window。
  3. 属性名,比如:foo.bar。占据的空间仅次于字符串,”.” 操作符无法被代替,且 a.b.c 更加费空间。
  4. 关键字。经常被过度使用的关键字有:var、return。最好的优化方法:一个函数仅出现一次 var 和 return 关键字。

对于原始值、全局变量、属性名的优化处理方式大致相同:任何字面量值、全局变量或者属性名被使用超过 2 次(包括2次),都应该用局部变量存储代替。

但有部分情况下是禁止使用标识符替换的:

  1. 使用 eval() 函数。解决方法:不使用或者创建一个全局函数封装 eval()。
  2. 使用 with 语句。解决方法:方法同上。
  3. JScript 的条件注释。唯一解决的方法:不使用。

由于 YUI Compressor 是建立在 rhino interpreter 基础上的,所以上述所有的优化都是安全的。

扩展阅读:
《Extreme JavaScript Compression With YUI Compressor》

原文:
http://www.planabc.net/2009/08/02/javascript-compression_with_yui_compressor/

分享到:
评论

相关推荐

    Javascript开发之js压缩篇.pdf

    Javascript开发之js压缩篇.pdf

    Javascript开发之js压缩篇.docx

    Javascript开发之js压缩篇.docx

    javascript压缩工具

    聚问网络开发的js压缩专家(JsPacker)v1.0 是同功能的桌面程序,并且是绿色软件,使用起来更加方便。 软件名称:js压缩专家 v1.0 (英文名称:JsPacker) 软件简介:可以高效的压缩Javascript脚本文件缩短网页显示...

    JavaScript 代码压缩加密软件

    聚问网络开发的js压缩专家(JsPacker)v1.0 是同功能的桌面程序,并且是绿色软件,使用起来更加方便。 软件名称:js压缩专家 v1.0 (英文名称:JsPacker) 软件简介:可以高效的压缩Javascript脚本文件缩短网页显示...

    淘宝开发的Javascript文件压缩工具

    如果再对test.js文件执行一次压缩,会生成test-min.js文件。css文件的压缩方式和js一样 注意事项: 1. 需要安装JDK >= 1.4, 并设置环境变量 JAVA_HOME 2. css和js文件编码必须是GB2312, GBK或GB18030. 如果要...

    java开发中压缩js,css文件

    java开发中压缩js,css文件 给定js或css文件 直接输出压缩后的内容或文件.有注释,易操作.

    JavaScript解析器用于ES6的压缩器优化器和美化工具包

    JavaScript解析器,用于ES6 的压缩器/优化器和美化工具包

    前端开发js静态资源压缩文件

    前端开发js静态资源压缩文件

    国内最强的JS(Javascript)压缩混淆加密器

    HDS JSObfuscator是HDS通过对当前市面上的同类工具分析和总结后而开发的Javascript压缩混淆加密器。与同类工具相比,它是当前市面上功能较强,使用约束较小的工具之一。它兼顾了压缩、混淆和加密三大功能,用户可以...

    Compressorjs一个JavaScript图像压缩器

    Compressor.js一个JavaScript图像压缩器。 使用浏览器的原生canvas.toBlob API来执行压缩工作,这意味着它是有损压缩。 一般使用此方法在客户端上传图像文件之前对其进行预压缩。

    JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3

    JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3 因为源代码比较大,压缩后76M左右 所以分为四个包上传

    JS压缩工具JsPacker

    聚问网络开发的js压缩专家(JsPacker)v1.0 是同功能的桌面程序,并且是绿色软件,使用起来更加方便。 软件名称:js压缩专家 v1.0 (英文名称:JsPacker) 软件简介:可以高效的压缩Javascript脚本文件缩短网页显示...

    基于java的开发源码-JS和CSS压缩混淆 JsCompressor.zip

    基于java的开发源码-JS和CSS压缩混淆 JsCompressor.zip 基于java的开发源码-JS和CSS压缩混淆 JsCompressor.zip 基于java的开发源码-JS和CSS压缩混淆 JsCompressor.zip 基于java的开发源码-JS和CSS压缩混淆 ...

    jspacker js压缩专家v1.0

    聚问网络开发的js压缩专家(JsPacker)v1.0 是同功能的桌面程序,并且是绿色软件,使用起来更加方便。 软件名称:js压缩专家 v1.0 (英文名称:JsPacker) 软件简介:可以高效的压缩Javascript脚本文件缩短网页显示...

    JS压缩工具 js代码美化

    开发Ajax除了自己要写js代码外,同样也免不了要使用其它第三方js库,是否该为JavaScript减肥? 当你提高了用户体验,做出了很绚丽的效果而欣喜的时候,是否想过优化一下JS的效率,比如微软的live,其中的js做了压缩...

    Google的JavaScript压缩工具

    该软件是一款由java语言开发的专门用来压缩js的工具,压缩效果极佳,下载后里面包含原件和解压后的文件,以及个人搜索到的相关的使用指南网址。

    MVC的JavaScript Web富应用开发(完整版)

    通过由浅入深的讲解,你将学会如何构建具有丰富交互以及优雅体验的JavaScript应用,书中同样提供了大量的示例代码,可以帮助你更深入的理解很多重要的概念。 揭开MVC的神秘面纱,教你如何设计合理的架构以及处理...

    自己收集的javascript效果集(超多)适合网站开发人员用文件3

    自己收集的javascript效果集(超多)适合网站开发人员用,以前发的有问题解压缩不了,现在更正。

    javascript压缩混淆加密器

    HDS JSObfuscator是HDS通过对当前市面上的同类工具分析和总结后而开发的Javascript压缩混淆加密器。与同类工具相比,它是当前市面上功能较强,使用约束较小的工具之一。它兼顾了压缩、混淆和加密三大功能,用户可以...

    精通JavaScript 中文版 PDF part2

    图灵程序设计丛书 Web开发系列 精通JavaScript(Pro JavaScript Techniques) [美] John Resig 著 陈贤安 江疆 译 人民邮电出版社 本书分六个部分共十四章 大小为71.6M,因上传资源限制为20M,所以只能分卷压缩,共4...

Global site tag (gtag.js) - Google Analytics