高性能网站建设指南
出版时间:2008年05月
“如果实现了Steve这些建议中的20%,你的站点就能出现戏剧性的变化。有了这本书和YSlow扩展,实在是没有理由再构建出运行速度缓慢的网站了。”
——Joe Hewitt,Firebug调试器和Mozilla的DOM解释器的开发者
“Steve Souders完成了一项神奇的工作,他提出了一系列简明的、可操作的,并且注重实效的开发步骤,使Web性能世界发生了翻天覆地的改变。”
——Eric Lawrence,微软Fiddler Web Debugger开发者
想让你的网站显示得更快?本书提供了14种规则,可以使用户在请求页面时减少20%-25%的响应时间。作为Chief Performance Yahoo!,作者Steve Souders收集了在优化网络时访问最多的页面积累下来的最佳实践。即使网站已经进行了高度的优化——如Yahoo! Search和Yahoo!首页——我们也能从这些出奇简单的性能规则中获益。
《高性能网站建设指南》一书介绍了如何针对网站中的Ajax、CSS、JavaScript、Flash和图片进行性能优化。每个性能规则都提供了示例,在本书的配套网站上可以找到代码片段。这些规则包括:
* 减少HTTP请求
* 使用外部JavaScript和CSS
* 使用内容发布网络
* 减少DNS查找
* 添加Expires头
* 精简JavaScript
* 压缩组件
* 避免重定向
* 将样式表放在顶部
* 移除重复脚本
* 将脚本放在底部
* 配置ETag
* 避免CSS表达式
* 使Ajax可缓存
如果你希望构建高流量页面,并且改善用户访问网站的体验,那么本书是你不可或缺之物。
Steve Souders,Chief Performance Yahoo!,为Yahoo!的其他产品团队开发了性能分析工具,并致力于推广这些最佳实践和工具。在加盟Yahoo!之前,Steve曾就职于多家中小型公司,其中有两家还是他协办的——Helix Systems和CoolSync。他是斯坦福大学管理科学与工程硕士。
- 序 I
- 前言 III
- 绪言A:前端性能的重要性 1
- 跟踪Web页面性能 1
- 时间花在哪了? 3
- 性能黄金法则 4
- 绪言B:HTTP概述 6
- 压缩 7
- 条件GET请求 7
- Expires 8
- Keep-Alive 8
- 更多信息 9
- 第1章:规则1——减少HTTP请求 10
- 图片地图 10
- CSS Sprites 11
- 内联图片 13
- 合并脚本和样式表 15
- 小结 16
- 第2章:规则2——使用内容发布网络 18
- 内容发布网络 19
- 节省 20
- 第3章:规则3——添加Expires头 22
- Expires头 22
- Max-Age和mod_expires 23
- 空缓存VS完整缓存 24
- 不仅仅是图片 25
- 修订文件名 27
- 示例 28
- 第4章:规则4——压缩组件 29
- 压缩是如何工作的 29
- 压缩什么 30
- 节省 31
- 配置 31
- 代理缓存 33
- 边缘情形 34
- 压缩的实际效果 35
- 第5章:规则5——将样式表放在顶部 37
- 逐步呈现 37
- sleep.cgi 38
- 白屏 39
- 无样式内容的闪烁 43
- 前端工程师应该做什么? 43
- 第6章:规则6——将脚本放在底部 45
- 脚本带来的问题 45
- 并行下载 46
- 脚本阻塞下载 48
- 最差情况:将脚本放在顶部 49
- 最佳情况:将脚本放在底部 49
- 正确地放置 50
- 第7章:规则7——避免CSS表达式 51
- 更新表达式 52
- 围绕问题展开工作 52
- 小结 54
- 第8章:规则8——使用外部JavaScript和CSS 55
- 内联VS外置 55
- 典型的对比结果 58
- 主页 58
- 两全其美 59
- 第9章:规则9——减少DNS查找 63
- DNS缓存和TTL 63
- 浏览器的视角 66
- 减少DNS查找 68
- 第10章:规则10——精简JavaScript 69
- 精简 69
- 混淆 70
- 节省 70
- 示例 72
- 锦上添花 73
- 第11章:规则11——避免重定向 76
- 重定向的类型 76
- 重定向是如何损伤性能的 77
- 重定向之外的其他选择 79
- 第12章:规则12——移除重复脚本 85
- 重复脚本——确有其事 85
- 重复脚本损伤性能 86
- 避免重复脚本 87
- 第13章:规则13——配置ETag 89
- ETag是什么? 89
- ETag带来的问题 91
- Etag——用还是不用 93
- 现实世界中的ETag 94
- 第14章:规则14——使Ajax可缓存 96
- Web 2.0、DHTML和Ajax 96
- 异步与即时 98
- 优化Ajax请求 99
- 现实世界中的Ajax缓存 99
- 第15章:析构十大网站 103
- 页面大小、响应时间、YSlow等级 103
- 如何进行测试 105
- Amazon 107
- AOL 110
- CNN 114
- eBay 116
- Google 120
- MSN 123
- MySpace 127
- Wikipedia 130
- Yahoo 132
- YouTube 135
- 索引 139
书名:高性能网站建设指南
国内出版社:电子工业出版社
出版时间:2008年05月
书号:978-7-121-06619-1
原版书出版商:O'Reilly Media
Steve Souders
Steve Souders在Yahoo!担任Chief Performance。他于2000年加盟Yahoo!,在该公司的很多平台和产品团队中工作过。在他到达今天这个位置之前,他就职于My Yahoo!开发团队。
作为Chief Performance Yahoo!,他开发了一系列优秀软件,可以使网站访问速度变得更快。他构建了用于进行性能分析的工具,并将这些优秀软件和工具传播到Yahoo!的各个产品团队中。
在到Yahoo!之前,Steve就职于很多小型或中型公司,包括他和别人一起创办的两个公司——Helix Systems和CoolSync。他还曾就职于General Magic、WhoWhere?和Lycos。在20世纪80年代早期,Steve捕获到了Artificial Intelligence的bug,并在一些公司里进行机器方面的研究。他在维吉尼亚大学得到了系统工程学学士学位,后又在斯坦福大学获得了管理科学和工程学硕士学位。
Steve的兴趣爱好多种多样。他常出现在Freehand System的会议桌上,并且经常光顾Fremont Hills Country Club,还在Sunday School教书。他曾与很多NBA和WNBA球员一起打篮球,但最近他改玩Ultimate Frisbee了。他是Universal Studios Internet Task Force的成员、他重建了有90年历史的车房(carriage house),他还参与了一项吉尼斯世界纪录。他有一位美丽的妻子和三个女儿。
本书封面上的动物是灵缇犬(Greyhound,一种善跑的狗)。
作为世界上跑得最快的狗,灵缇犬的速度可以达到每小时45英里(约72千米),这源自它流线型、狭长的身躯;巨大的肺、心和肌肉;双倍的悬空飞跃(每一步都有两次四脚同时离地)及其灵活的脊柱。尽管灵缇犬跑得出人意料地快,但它的精力并不旺盛,而且缺乏耐力,因此它需要比其他的狗更多的锻炼时间。出于这一原因,它们经常被称作“45英里每小时的懒汉”,因为除了追击一些小的猎物(如兔子和猫),它们会很知足地终日大睡。
灵缇是最古老的犬种之一,出现在各个历史时期的艺术和文学作品中。在古埃及,灵缇犬通常和他的主人一起制成木乃伊并埋葬,公元前4000年犬的象形文字和现代的灵缇犬非常像。在希腊和罗马,灵缇犬通常和上帝及女神一同描述。灵缇犬曾出现在霍默、乔叟、莎士比亚和塞万提斯的作品中,而且它们还是《圣经》中唯一提到的一种狗。它们卓越的智商、优雅的外形、优秀的竞技能力和忠实的态度长久以来一直为人们所津津乐道。在20世纪20年代早期,现代灵缇犬竞技被引入美国。参加竞技的灵缇犬比展示犬更小而且更耀眼,它们经过有选择地繁衍,通常保持身长635毫米~736毫米(25英寸~29英寸)、体重27千克~32千克(60英镑~70英镑)。这些狗可以追上任何快速移动的东西(作为观赏犬,而不是侦察犬),因此它们得以在赛道中追逐它们的诱饵——机械野兔。灵缇犬竞赛在美国仍然是一种非常流行的观赏性比赛,和赛马一样,是一种颇受喜爱的博彩形式。
但灵缇犬竞赛非常受争议,因为狗们体验到的人类关怀太少了,而且它们的非竞赛时间大多花来配种。一旦灵缇犬衰老不适宜比赛(一般在3岁到5岁之间),很多都被安乐死了,因此产生了很多营救计划,为这些退休的选手寻找新家。灵缇犬本性温顺、冷静,很多能经过驯养而变成可爱的宠物。