我们都知道,JavaScript是一种在客户端浏览器中执行的解释型语言。换句话说,JavaScript会以明文下载到浏览器,再由浏览器根据需要执行这个JavaScript代码。
用户只要使用浏览器的查看源代码功能就能读到JavaScript源代码,该功能会显示出页面的完整HTML标记,包括所有JavaScript块。即使JavaScript源码放在一个外部文件中,并用Script标记和src属性来引用,用户也可以下载并阅读它。由于查看页面的人都得到JavaScript源代码,所以不要把专用或机密的逻辑算法放在JavaScript中。这种逻辑最好放在服务器上,在那会更安全些。
在基于AJAX的应用中,随着JavaScript的使用越来越多,JavaScript文件的大小可能会成为问题。由于JavaScript是一种解释型语言,因此不会编译为机器级的二进制码,而对于可执行代码来说,二进制码才是更高效的存储格式。如果JavaScript文件太多就会使应用的速度减慢,因为他需要先把源代码从服务器下载到浏览器,然后才能在浏览器上执行。另外,如果使用诸如JSDoc得工具为此要对代码加注释,本来就很大的JavaScript代码会变得更大。
你可能看到了,JavaScript缺少二进制的可执行包,这会带来两个问题:安全性差和需要下载大量的源代码。有没有办法对JavaScript压缩呢?
JavaScript日益普及,因此也产生了许多工具,这些工具有助于解决这些问题。最简单的压缩工具会简单的除去JavaScript源代码中的所有注释和换行符,这样可以减小下载的源代码的大小。删除注释行和换行符能使JavaScript文件的大小缩小30%甚至更多,这要依具体情况而定。需要说明的是,JavaScript源代码中的所有语句必须正确的以分号结束,只有这样才能用这种工具对源代码进行压缩。如果没有做到这一点,你就会接收到错误或者未预料行为的消息。所以,再压缩JavaScript源代码之前,一定要使用JSLint确保所有语句都以分号结束。
还有一些工具则更进一步,可以提供模糊服务。模糊(Obfuscation)是一种过程,指全面扫描源代码,将字段和函数原来的名字改成经编码的无意义的名字,以防止其他人了解源代码的含义和内部工作。JavaScript作为一个完全解释型语言同样需要这样一种工具。
有一个能同时提供压缩和模糊服务的免费工具,就是MemTronic的HTML/JavaScript Cruncher-Compressor。这个工具支持多层次的JavaScript压缩。最底层次的压缩在这个工具中称为挤压(crunching),只是简单地删除所有注释和换行符。这个工具的相关文档称,这样可以节省20%-50%得带宽。使用“crunch”模式,可以看到JavaScript文件的大小缩小了30%。
最高层次的压缩在这个工具中称为压缩(compressing),是用一种真正得压缩机制实际压缩JavaScript源代码,并向文件增加自动解压缩功能。这个工具的相关文档称,当使用这种模式时,带宽可以节省40%-90%,而且压缩后的输出已经在当前版本的IE、Netscape、Mozilla和Opera等浏览器上成功通过测试。使用同一个JavaScript文件,应用“compressing”模式和“crunch”模式进行测试,发现使用“compress”模式使得文件大小的缩小幅度超过了65%。

 » 除非另有声明,本站文章均为原创。
 » 转载原创文章请以链接形式注明:
 » 转载自:[Neeke] » [教你压缩JavaScript代码]
 » 本文链接地址: http://www.ineeke.com/archives/649/
 » 如果喜欢可以:点此邮件订阅或者点此阅读器订阅