资源名称:高性能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
资源截图: