资源名称:高性能Ja vaSc ript

内容简介:

如果你使用 Javascript 构建交互丰富的 Web 应用,那么 Javascript 代码可能是造成你的Web应用速度变慢的主要原因。《高性能Javascript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位 Javascript 专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。你还会了解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。

资源目录:

前言I

第1章:加载和执行1

1.1脚本位置2

1.2组织脚本4

1.3无阻塞的脚本5

1.3.1延迟的脚本5

1.3.2动态脚本元素6

1.3.3XMLHttpRequest脚本注入9

1.3.4推荐的无阻塞模式10

1.4小结14

第2章:数据访问15

2.1管理作用域16

2.1.1作用域链和标识符解析16

2.1.2标识符解析的性能19

2.1.3改变作用域链21

2.1.4动态作用域24

2.1.5闭包,作用域和内存24

2.2对象成员27

2.2.1原型27

2.2.2原型链29

2.2.3嵌套成员30

2.2.4缓存对象成员值31

2.3小结33

第3章:DOM编程35

3.1浏览器中的DOM35

3.1.1天生就慢36

3.2DOM访问与修改36

3.2.1innerHTML对比DOM方法37

3.2.2节点克隆41

3.2.3HTML集合42

3.2.4遍历DOM46

3.3重绘与重排50

3.3.1重排何时发生?51

3.3.2渲染树变化的排队与刷新51

3.3.3最小化重绘和重排52

3.3.4缓存布局信息56

3.3.5让元素脱离动画流56

3.3.6IE和:hover57

3.4事件委托57

3.5小结59

第4章:算法和流程控制61

4.1循环61

4.1.1循环的类型61

4.1.2循环性能63

4.1.3基于函数的迭代67

4.2条件语句68

4.2.1if-else对比switch68

4.2.2优化if-else70

4.2.3查找表72

4.3递归73

4.3.1调用栈限制74

4.3.2递归模式75

4.3.3迭代76

4.3.4Memoization77

4.4小结79

第5章:字符串和正则表达式81

5.1字符串连接81

5.1.1加(+)和加等于(+=)操作符82

5.1.2数组项连接84

5.1.3String.prototype.concat86

5.2正则表达式优化87

5.2.1正则表达式工作原理88

5.2.2理解回溯89

5.2.3回溯失控91

5.2.4基准测试的说明96

5.2.5更多提高正则表达式效率的方法96

5.2.6何时不使用正则表达式99

5.3去除字符串首尾空白99

5.3.1使用正则表达式去首尾空白99

5.3.2不使用正则表达式去除字符串首尾空白102

5.3.3混合解决方案103

5.4小结104

第6章:快速响应的用户界面107

6.1浏览器UI线程107

6.1.1浏览器限制109

6.1.2多久才算“太久”?110

6.2使用定时器让出时间片段111

6.2.1定时器基础112

6.2.2定时器的精度114

6.2.3使用定时器处理数组114

6.2.4分割任务116

6.2.5记录代码运行时间118

6.2.6定时器与性能119

6.3Web Workers120

6.3.1Worker运行环境120

6.3.2与Worker通信121

6.3.3加载外部文件122

6.3.4实际应用122

6.4小结124

第7章:Ajax125

7.1数据传输125

7.1.1请求数据125

7.1.2发送数据131

7.2数据格式134

7.2.1XML134

7.2.2JSON137

7.2.3HTML141

7.2.4自定义格式142

7.2.5数据格式总结144

7.3Ajax性能指南145

7.3.1缓存数据145

7.3.2了解Ajax类库的局限148

7.4小结149

第8章:编程实践151

8.1避免双重求值(Double Evaluation)151

8.2使用Object/Array直接量153

8.3不要重复工作154

8.3.1延迟加载154

8.3.2条件预加载156

8.4使用速度快的部分156

8.4.1位操作156

8.4.2原生方法159

8.5小结161

第9章:构建并部署高性能Javascript应用163

9.1Apache Ant163

9.2合并多个Javascript文件165

9.3预处理Javascript文件166

9.4Javascript压缩168

9.5构建时处理对比运行时处理170

9.6Javascript的HTTP压缩170

9.7缓存Javascript文件171

9.8处理缓存问题172

9.9使用内容分发网络(CDN)173

9.10部署Javascript资源173

9.11敏捷Javascript构建过程174

9.12小结175

第10章:工具177

10.1Javascript性能分析178

10.2YUI Profiler179

10.3匿名函数182

10.4Firebug183

10.4.1控制台面板分析工具183

10.4.2Console API184

10.4.3网络面板185

10.5IE开发人员工具186

10.6Safari Web检查器(Web Inspector)188

10.6.1分析面板189

10.6.2资源面板191

10.7Chrome开发人员工具192

10.8脚本阻塞193

10.9Page Speed194

10.10Fiddler196

10.11YSlow198

10.12dynaTrace Ajax Edition199

10.13小结202

索引203

资源截图:

高性能Ja vaSc ript