高性能JavaScript
第1章:加载和执行
- 脚本位置
- 阻止脚本
- 无阻塞的脚本
- 延迟的脚本
- 动态脚本元素
XMLHTTPRequest脚本注入- 推荐的无阻塞模式
- 小结
第2章:数据存取
- 管理作用域
- 作用域链和标识符解析
- 标识符解析的性能
- 改变作用域链
- 动态作用域
- 闭包、作用域和内存
- 对象成员
第3章:DOM编程
- 浏览器中的DOM
- DOM访问与修改
innerHTML对比DOM方法- 节点克隆
- HTML集合
- 遍历DOM
- 重绘与重排
- 重排何时发生
- 渲染树变化的排队与刷新
- 最小化重绘与重排
- 缓存布局信息
- 让元素脱离动画流
- IE和
:hover
- 事件委托
- 小结
第4章:算法与流程控制
- 循环
- 条件语句
if-else对比switch- 优化
if-else - 查找表
- 递归
- 小结
第5章:字符串和正则表达式
- 字符串连接
- 加
+和加等+=操作符 - 数组项合并
String.prototype.concat
- 正则表达式优化
- 正则表达式工作原理
- 理解回溯
- 回溯失控
- 基准测试的说明
- 更多提高正则表达式效率的方法
- 何时不用正则表达式
- 去除字符串首尾空白
- 使用正则表达式去除首尾空白
- 不使用正则表达式去除首尾空白
- 混合解决方案
- 小结
第6章:快速响应的用户界面
- 浏览器UI线程
- 使用定时器让出时间片段
- 定时器基础
- 定时器精度
- 使用定时器处理数组
- 分割任务
- 定时器与性能
- Web Workers
- Worder运行环境
- 与Worker通信
- 加载外部文件
- 实际应用
第7章:Ajax
- 数据传输
- 数据格式
Ajax性能指南
小结
第8章:编程实践
- 避免双重求值
- 使用
Object/Array直接量 - 避免重复工作
- 使用速度快的部分
- 小结
第9章:构建并部署高性能JavaScript应用
Apache Ant- 合并多个JS文件
- 预处理JS文件
- JS压缩
- 构建时处理与运行时处理的对比
- JS的HTTP压缩
- 缓存JS文件
- 处理缓存问题
- 使用内容分发网络(CDN)
- 部署JS资源
- 敏捷JS构建过程
- 小结
第10章:工具
- JS性能分析
- YUI Profiler
- 匿名函数
- Firebug
- IE开发人员工具
- Safari Web检查器(Web Inspector)
- Chrome开发人员工具
- 脚本阻塞
- Page Speed
- Fiddler
- YSlow
- dynaTrace Ajax Edition
- 小结