高性能网站建设规则

设计和构造计算机程序要经过成千上万次抉择,每一次都代表着一种权衡。在进行重大抉择时,每个选择都有其显著的优缺点,让人难以取舍。我们都期望收益最大化,损耗最小化。或许,人生的终极权衡是:我想去天堂,但我不想死。然而现实的情况往往是:时间,质量和成本,三选二。这个项目三角形说明:即使在最理想的情况下,多快好省的事也基本不存在,所以权衡无处不在。——《高性能网站建设进阶指南》

代码
将样式表放在顶部,尽量使用外联的CSS
将脚本放在底部,尽量使用外联的JavaScript
精简优化JavaScript

如果JavaScript代码执行时间超过0.1秒,页面将会给人不够平滑快捷的感觉;如果执行时间超过1秒,则会感到应用程序缓慢;超过10秒,那么用户将会非常沮丧。

优化CSS选择器,避免CSS表达式

如下面的样式代码:

background-color: expression(...);
资源
图像优化

用JPG保存照片,用GIF保存动画,其他所有图像都用PNG来保存,并尽量使用PNG8,对于大小超过10KB的图像,采用渐进JPEG编码。

压缩资源
  1. 压缩资源
  2. gzip(服务端配置)
网络
减少HTTP请求
  1. CSS Sprites(雪碧图)
  2. 内联图片(data:URL)
  3. 合并脚本和样式表
使用内容发布网络(CDN)
减少DNS查找
避免重定向
缓存
添加Expires头(设置缓存)
配置ETag
使Ajax可缓存