14.7 创建快速载入的JavaScript
一旦我们开始为脚本使用外部JavaScript文件,访问者就会开始感觉到站点变快了。借助于浏览器的缓存,一旦为站点的页面下载了外部JavaScript文件,它们就不必再为不同的页面再次下载。然而,仍然有另一种方式使得站点下载更快,即压缩外部的JavaScript文件。
注意:通过SSL(secure socket layer,安全套接层)发布的文件不会缓存。因此,如果人们使用https://作为协议访问站点的页面(例如,https://www.oreilly.com),然后,他们下载的任何文件,包括外部JavaScript文件,都必须在每次需要的时候再次下载。
为了让脚本更容易理解,程序员通常插入空格、回车符和注释来说明脚本做什么。这些对于程序员来说都是重要的附加内容,但是,对于Web浏览器来说则不是必需的,它们可以很好地理解没有回车符、制表符、无关的空格或注释的JavaScript。使用一个压缩程序,我们可以减小JavaScript代码所占用的空间。本书所推荐的jQuery版本是精简版,其大小差不多是未压缩版本的一半。
还有几个程序,其目的是为了使得JavaScript代码更小。Douglas Crockford的JSMin(http://crockford.com/javascript/jsmin.html)就是一个例子,Dean Edward的Packer(http://dean.edwards.name/packer)也是一个例子。然而,本章使用的压缩器和Yahoo所使用的相同,因为它可以让文件节省很大的空间而不会修改代码(一些压缩器直接重新编写你的代码,而在某些情况下,这会使你的脚本无法工作)。
Yahoo的JavaScript压缩器YUI Compressor位于http://developer.yahoo.com/yui/compressor。在本书的第3版中,我们给出了只有计算机黑客喜欢的说明:他们喜欢下载一个JAR文件(Java),并且使用可怕的命令行。幸运的是,一些友好的有事业心的人已经制作了一个在线版本,我们将想要压缩的JavaScript代码粘贴进去,或者甚至在计算机上选取一个JavaScript文件并将其上传到Web站点,就可以使用它了。
1.打开一个Web浏览器并且访问http://www.refresh-sf.com/yui/。
这是Online YUI Compressor的站点。
2.单击文件链接。
可以只是从文本编辑器复制JavaScript代码并将其粘贴到站点主页的大文本框中,然后就可以跳转到步骤4。
3.单击Choose File按钮并在计算机上找到外部JavaScript文件。
这个文件必须只包含JavaScript。例如,你不能选择其中也包含JavaScript程序的一个HTML文件。
4.选择“Redirect to gzipped output”选项(就在Compress按钮的上方)。
这个选项允许你将最小化的代码下载到一个新的压缩文件中。这将是新的、压缩过的、外部JavaScript文件,可以将其保存到你的站点。
5.单击Compress按钮。
该Web站点处理你的代码,并且将压缩后的文件下载到你的计算机上。你可以重新命名该文件(因为它总是保存为min.js),并且将其放到你的站点上使用。在你压缩一个文件之后,Online YUI Compressor提供了很好的一份报告,列出了最初的文件大小,新的压缩后的文件大小,以及压缩百分比。
警告:确保在使用了Online YUI Compressor之后,最初的JavaScript文件仍然保留在手边,因为新的、压缩后的版本可能是不可读的,并且如果你想要对最初的编码做出修改,你是无法编辑它的。