今日大致浏览了一下《High Performance Web Sites》。本书的中文版是《高性能网站建设指南》。
本书另有对其中个别问题深入探究的进阶篇《Even Faster Web Sites》,中译《高性能网站建设进阶指南》。
作者介绍上面的豆瓣链接中有,就不再照搬过来了。
这本书中给出了14条网站性能提升的原则,每个原则独立成章,配有示例。这些原则大多数都非常实用,适合站点架构师、前端工程师。其中对于前端工程师的意义更大一些。
这次看的是原版。我对于Web开发较缺乏实践经验,加之看得匆忙,因此可能存在遗漏、表述不当之处,希望广大网友不吝指正。
原则1 减少HTTP请求数
构造请求、等待响应需要时间,因此请求数量越少越好。减少请求的总体思路就是合并资源,减少显示一个页面需要的文件数。
1. Image Map
通过设置标签的usemap属性与使用标签可以在一幅图片上切分出多个区域,指向不同的链接。比起使用多幅图片分别构造链接减少了请求数。
2. CSS Sprite(CSS贴图整合/贴图拼合/贴图定位)
通过设置元素的background-position样式做到。一般用于界面图标。典型的可以参考TinyMCE编辑器上方的那些小按钮。多个小图实质是从一个统一的大图通过不同的偏移量裁剪而来,这样加载界面上的众多按钮实际上只要请求一次(请求大图一次),从而减少HTTP请求数。
3. Inline Image(内联图片)
在的src中不指定外部图片文件的URL,而是直接将图片信息放入。例如src="data:image/gif;base64,R0lGODlhDAAMAL..."某些特殊情况下有用(例如一个不大的图片仅在当前页面用到)。
原则2 利用多线路CDN
为你的站点提供多种线路(例如国内电信、联通、移动)、多个地理位置(北方、南方、西部)的访问,使得所有用户都能够快速访问。
原则3 利用HTTP Cache
给不频繁更新的资源(例如静态图)加较长的Expires头信息,这些资源一经缓存,未来很长时间都可以不再重复传输了。
原则4 使用Gzip压缩
使用Gzip压缩HTTP报文,减小体积,减少传输时间。
原则5 将样式表置于页面前部
先加载样式表,这样页面渲染得以较早开始,给用户页面加载较快的感觉。
原则6 将脚本置于页面尾部
原因同5,先处理页面显示,页面渲染较早完成,而脚本逻辑稍后执行,这样给用户页面加载较快的感觉。
原则7 避免使用CSS表达式
过于复杂的JavaScript脚本逻辑、DOM查找、选择操作将会降低页面处理效率。
原则8 将JavaScript与CSS作为外联资源
这似乎与原则1中的合并思想相悖,但其实不然:考虑每个页面都引入了一个公共的JavaScript资源(例如jQuery或是ExtJS这样的JavaScript库),单就一个页面的表现来看,内联(即将JavaScript嵌入HTML)页面将比外联(使用