压缩原因
Javascript 压缩器是一个在线压缩和混淆 Javascript 代码的开发辅助工具,能够帮助开发人员减小 JS 文件大小、避免网站上的 Javascript 源代码被他人窥视和窃取。
压缩:删除 Javascript 代码中所有注释、跳格符号、换行符号及无用的空格,从而压缩 JS 文件大小。
混淆:经过编码将变量和函数原命名改为毫无意义的命名,以防止他人窥视和窃取 Javascript 源代码。
网站上线的时候js文件都是经过压缩的。压缩js文件可以减少文件体积方便传输,还可以让别人看不懂。
简单的压缩一般是:删除注释和空白符,替换变量名。更激进点的做法还包括:删除无用代码,内联函数,等价语句替换等。
有些开发者出于保护代码的原因还可能会对代码进行混淆处理。这样混淆压缩后的代码基本不是人看的。
要想文件更快地下载完成,最直接的办法就是减小文件的体积,也就是把体积“压缩”了,对于javascript文件同样如此。
javascript文件与CSS文件类似,但他们在缩减体积方面差别很大。
对CSS进行压缩,可能能缩小的体积微乎其微,因为css中的选择器是万万不可更改的,但javascript不一样,JS中只需要保留可供调用的变量名字不变,其余的变量都可随意命名。
比如压缩版的jQuery,就是个很好的例子。
javascript文件压缩的原理
第一个当然就是去掉注释了。
另外就是跟CSS压缩相同的去掉换行符,空格什么的。
JAVASCRIPT中有几种变量形式,如变量,函数名,函数的参数等,通常我们在手写JS代码的时候,为了便于理解,我们都会给这些变量名以直观易懂的字符串,如:var title=”javascript”;这个习惯是值得推崇的。
但是,这些变量对于用户理解有帮助,对于计算机却没什么影响,如果我们把前面的句子变成:var a=”javascript”;对电脑来讲是一样的。
通常深度压缩JS都必须要做的一步就是尽量地缩短变量名,因为一份体积巨大的JS代码,其中的变量名会占去不少空间。
26个单字母,几乎就可以把一个函数中所有的参数都写完,所以我们经常在压缩版的JS代码中发现a,b,c,d之类的连续变量。
另外,Javascript有个特性就是不同作用域的变量名可以任意重复,所以此函数中有a,b,c,d,其他函数也可以有。这样短又大量重复的变量可以让人索云里雾里不知所云,也变相的起到了加密JS代码的作用.
压缩javascript必须要注意的
原理就在这儿了,但开始压缩的时候必须要做到以下几点:
1、压缩前的代码格式要标准。因为去掉换行与空格时,所有语句就变成一行了,如果你的代码有瑕疵(比如某行少了个分号),那就会导致整个文件报错。当然,现在有的压缩工具已经比较智能了。
2、备份原文件
3、压缩很可能不会一次成功,一般要多试,多改
原理很简单——当然,其中也有复杂的技巧,但原理基本就是如此,但我们如果手动进行压缩工作无疑烦恼大大的,所以就有前辈开发了专门的工具来进行这个工作。
压缩javascript工具
1、YUI Compressor
2、Packers
3、JS Min
4、Google Closure Compiler
等等