《High Performance Web Sites》之 Rule 11 读书笔记

Avoid Redirects 的意思是避免跳转,跳转使得网页变慢。原因如 图1 ,所有下载都被阻塞了,比 Chapter 5Chapter 6 所提到的放在页尾的 CSS 样式表放在页首的外链 JavaScript 文件造成的影响还大。 image
图1 所有下载都被阻塞直到跳转完成 更好的替代方案:
1、目录 URL 不加 / 的话会自动 301 跳转到加 / 的地址,例如 http://astrology.yahoo.com/astrology 自动跳转到 http://astrology.yahoo.com/astrology/
解决方案:加上 / (紧跟域名后面的 / 缺少不会引起跳转);
2、当重写后端导致接口替换时,用以下三种方案替代跳转:
(1) Alias、 mod_rewrite 和 DirectorySlash;
(2) 如果新老后端在同一服务器上,直接用后端代码链接起来;
(3) 如果只是更改域名,设置 CNAME 使得老后端地址自动指向新后端;
3、如果是统计网页站内进入来源,可以用 Referer Log 实现;
4、如果是统计站外链接的点击信息,用 “XMLHttp-Request Beacon”会稍微快些;
如果是链接是打开新窗口的,可以直接用 beacon 图像协议:

<a href=http://en.wikipedia.org/wiki/Performance

onclick=”resultBeacon(this); return false;”>Performance - Wikipedia

以上这段代码并不比跳转快,但对于打开新窗口的链接,却不会阻塞页面加载; 5、如果是用短域名跳转到长域名地址,使得网址更好记的情况,阅第二条; 总之,避免跳转。 image

后记

XMLHttp-Request Beacon 详见 http://stevesouders.com/hpws/xhr-beacon.phphttp://stevesouders.com/hpws/redir-beacon.php。 关于 301 302 等跳转以及 mod_rewrite 等的进一步信息,请自行阅读《High Performance Web Sites》或者自己 google :-D