《高性能网站建设进阶指南 Web开发者性能优化最佳实践》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)SteveSouders著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121258862
  • 页数:233 页
图书介绍:本书是《高性能网站建设指南》姊妹篇。作者Steve Souders是Google Web性能布道者和前Yahoo!首席性能工程师。在本书中Souders与8位专家分享了提升网站性能的最佳实践和实用建议,主要包括:理解Ajax性能,编写高效的JavaScript,创建快速响应的应用程序和无阻塞加载脚本,跨域共享资源,无损压缩图片大小,使用块编码加快网页渲染,避免或取代iframe的方法,简化CSS选择符,以及其他技术。

第1章 理解Ajax性能 1

权衡 1

优化原则 2

Ajax 4

浏览器 4

哇! 5

JavaScript 6

总结 6

第2章 创建快速响应的Web应用 7

怎样才算足够快 9

测量延迟时间 10

当延迟变得很严重时 12

线程处理 12

确保响应速度 13

Web Workers 14

Gears 14

定时器 16

内存使用对响应时间的影响 17

虚拟内存 18

内存问题的疑难解答 18

总结 19

第3章 拆分初始化负载 21

全部加载 21

通过拆分来节省下载量 22

寻找拆分 23

未定义标识符和竞争状态 24

个案研究:Google日历 25

第4章 无阻塞加载脚本 27

脚本阻塞并行下载 27

让脚本运行得更好 29

XHR Eval 29

XHR注入 31

Script in Iframe 31

Script DOM Element 32

Script Defer 33

document.write Script Tag 33

浏览器忙指示器 33

确保(或避免)按顺序执行 35

汇总结果 36

最佳方案 38

第5章 整合异步脚本 41

代码示例:menu.js 42

竞争状态 44

异步加载脚本时保持执行顺序 45

技术1:硬编码回调 46

技术2:Window Onload 47

技术3:定时器 48

技术4:Script Onload 49

技术5:降级使用script标签 50

多个外部脚本 52

Managed XHR 52

DOM Element和Doc Write 56

综合解决方案 59

单个脚本 59

多个脚本 60

现实互联网中的异步加载 63

Google分析和Dojo 63

YUI Loader 65

第6章 布置行内脚本 69

行内脚本阻塞并行下载 69

把行内脚本移至底部 70

异步启动执行脚本 71

使用script的defer属性 73

保持CSS和JavaScript的执行顺序 73

风险:把行内脚本放置在样式表之后 74

大部分下载都不阻塞行内脚本 74

样式表阻塞行内脚本 75

问题确曾发生 77

第7章 编写高效的JavaScript 79

管理作用域 79

使用局部变量 81

增长作用域链 83

高效的数据存取 85

流控制 88

快速条件判断 89

快速循环 93

字符串优化 99

字符串连接 99

裁剪字符串 100

避免运行时间过长的脚本 102

使用定时器挂起 103

用于挂起的定时器模式 105

总结 107

第8章 可伸缩的Comet 109

Comet工作原理 109

传输技术 111

轮询 111

长轮询 112

永久帧 113

XHR流 115

传输方式的前景 116

跨域 116

在应用程序上的执行效果 118

连接管理 118

测量性能 119

协议 119

总结 120

第9章 超越Gzip压缩 121

这为什么很重要 121

问题的根源 123

快速回顾 123

罪魁祸首 123

流行的乌龟窃听者实例 124

如何帮助这些用户 124

设计目标:最小化未压缩文件的尺寸 125

引导用户 129

对Gzip的支持进行直接探测 130

第10章 图像优化 133

两步实现简单图像优化 134

图像格式 135

背景 135

不同图像格式的特性 137

PNG的更多资料 139

自动无损图像优化 141

优化PNG格式的图像 142

剥离JPEG的元数据 143

将GIF转换成PNG 144

优化GIF动画 144

Smush.it 145

使用渐进JPEG格式来存储大图像 145

Alpha透明:避免使用AlphaImageLoader 146

Alpha透明度的效果 147

AlphaImageLoader 149

AlphaImageLoader的问题 150

渐进增强的PNG8 Alpha透明 151

优化Sprite 153

超级Sprite VS.模块化Sprite 154

高度优化的CSS Sprite 155

其他图像优化方法 155

避免对图像进行缩放 155

优化生成的图像 156

Favicons 157

Apple触摸图标 158

总结 159

第11章 划分主域 161

关键路径 161

谁在划分主域 163

降级到HTTP/1.0 165

域划分的扩展话题 168

IP地址和主机名 168

多少个域 168

如何划分资源 168

新型浏览器 169

第12章 尽早刷新文档的输出 171

刷新文档头部的输出 171

输出缓冲 173

块编码 175

刷新输出和Gzip 压缩 176

其他障碍 177

刷新输出时的域阻塞 178

浏览器:最后的障碍 178

不借助PHP进行刷新输出 179

刷新输出问题清单 180

第13章 少用iframe 181

开销最高的DOM元素 181

iframe阻塞onload事件 182

使用iframe并行下载 184

脚本位于iframe之前 184

样式表位于iframe之前 185

样式表位于iframe之后 186

每个主机名的连接 187

iframe中的连接共享 187

跨标签页和窗口的连接共享 188

总结使用iframe的开销 190

第14章 简化CSS选择符 191

选择符的类型 191

ID选择符 192

类选择符 193

类型选择符 193

相邻兄弟选择符 193

子选择符 193

后代选择符 193

通配选择符 194

属性选择符 194

伪类和伪元素 194

高效CSS选择符的关键 194

最右边优先 195

编写高效的CSS选择符 195

CSS选择符性能 197

复杂的选择符影响性能(有时) 197

应避免使用的CSS选择符 200

回流时间 201

在现实中测量CSS选择符 202

附录A 性能工具 205

索引 221