Skip to content

Commit 5f1cc88

Browse files
committed
部署JavaScript一节 之 合并脚本 翻译完毕
1 parent e9a5562 commit 5f1cc88

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

chapter8.markdown

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,5 +551,27 @@ ttt对象维护着一个已经填过的单元格的列表ttt.played,并且将
551551

552552
这种模式叫作图片信标,当你想发送一些数据给服务器记录时很有用,比如做访问统计。因为信标的响应对你来说完全是没有用的,所以通常的做法(不推荐)是让服务器返回一个1x1的GIF图片。更好的做法是让服务器返回一个“204 No Content”HTTP响应。这意味着返回给客户端的响应只有响应头(header)而没有响应体(body)。
553553

554+
## 部署JavaScript
555+
556+
在生产环境中使用JavaScript时,有不少性能方面的考虑。我们来讨论一下最重要的一些。如果需要了解所有的细节,可以参见O'Reilly出社的《高性能网站建设指南》和《高性能网站建设进阶指南》。
557+
558+
### 合并脚本
559+
560+
创建高性能网站的第一个原则就是尽量减少外部引用的组件(译注:这里指文件),因为HTTP请求的代价是比较大的。具体就JavaScript而言,可以通过合并外部脚本来显著提高页面加载速度。
561+
562+
我们假设你的页面正在使用jQuery库,这是一个.js文件。然后你使用了一些jQuery插件,这些插件也是单独的文件。这样的话在你还一行代码都没有写的时候就已经有了四五个文件了。把这些文件合并起来是很有意义的,尤其是其中的一些体积很小(2-3kb)时,这种情况下,HTTP协议中的开销会比下载本身还大。合并脚本的意思就是简单地创建一个新的js文件,然后把每个文件的内容粘贴进去。
563+
564+
当然,合并的操作应该放在代码部署到生产环境之前,而不是在开发环境中,因为这会使调试变得困难。
565+
566+
合并脚本的不便之处是:
567+
568+
- 在部署前多了一步操作,但这很容易使用命令行自动化工具来做,比如使用Linux/Unix的cat:
569+
570+
$ cat jquery.js jquery.quickselect.js jquery.limit.js > all.js
571+
- 失去一些缓存上的便利——当你对某个文件做了一点小修改之后,会使得整个合并后的代码缓存失效。所以比较好的方法是为大的项目设定一个发布计划,或者是将代码合并为两个文件:一个包含可能会经常变更的代码,另一个包含那些不会轻易变更的“核心”。
572+
- 你需要处理合并后文件的命名或者是版本问题,比如使用一个时间戳all_20100426.js或者是使用文件内容的hash值。
573+
574+
这就是主要的不便之处,但它带来的好处却是远远大于这些麻烦的。
575+
554576

555577

0 commit comments

Comments
 (0)