第一章:加载和执行
1.1脚本位置
1.2组织脚本
1.3无阻塞的脚本 延迟的脚本 动态脚本元素 XMLHttpRequest脚本注入 推荐的无阻塞模式
1.4小结
第二章:数据访问
2.1管理作用域 作用域链和标识符解析 标示符解析的性能 改变作用域链 动态作用域 闭包 作用域和内存
2.2对象成员 原型 原型链 嵌套成员 缓存对象成员值
2.3小结
第三章:DOM编程
3.1浏览器中的DOM 天生就慢
3.2DOM访问与修改
innerHTML对比DOM方法 节点克隆 HTML集合 遍历DOM
3.3重绘与重排
重排何时发生 渲染树变化的排队与刷新 最小化重排与重绘 缓存布局信息 让元素脱离动画流 IE和hover
3.4事件委托
3.5小结
第四章:算法和流程控制
4.1循环
循环的类型 循环性能 基于函数的迭代
4.2条件语句
If-else对比switch 优化if-else 查找表
4.3递归
调用栈限制 递归模 迭代Memoization
4.4小结
第五章:字符串和正则表达式
5.1字符串连接
加(+)和加等于(+=)操作 数组项连接String.prototype.concat
5.2正则表达式优化
正则表达式的工作原理 理解回溯 回溯失控 基于测试的说明 更多提高正则表达式效率的方法
5.3去除字符串的首尾空白
使用正则表达式去除首尾空白 不使用正则表达式去除字符串的首尾空白 混合解决方案
5.4小结
第六章:快速相应的用户界面
6.1浏览器UI线程 浏览器限制 多久才算太久
6.2使用定时器让出时间片段 定时器基础 定时器精度 使用定时器处理数组 分割任务 记录代码运行时间 定时器与性能
6.3WebWorkers
Workers与运行环境 与Worker通信 加载外部文件 实际应用
6.4小结
第七章:Ajax
7.1数据传输 发送请求 发送数据
7.2数据格式 XML JSONHTML 自定义个格式数据格式总结
7.3Ajax性能指南
缓存数据 了解Ajax类库的局限
7.4小结
第八章:编程实践
8.1避免双重求值(doubleEvalutation)
8.2使用object/value直接量
8.3不要重复工作
延迟加载 条件预加载
8.4使用速度快的部分
位操作 原生方法
8.5小结
第九章:构建并部署高性能javascript应用
9.1ApacheAnt
9.2合并多个Javascript文件
9.3预处理javascript文件
9.4javascript压缩
9.5构建时处理对比运行时压缩
9.6javascript的HTTP压缩
9.7缓存javascript文件
9.8处理换缓存问题
9.9使用内容分发网络(CDN)
9.10部署Javascript资源
9.11敏捷Javascript构建过程
9.12小结
第十章:工具
10.1JavaScrit性能分析
10.2YUIProfiler
10.3匿名韩式
10.4FireBug
控制台面板分析工具ConsoleAPI 网络面板
10.5IE开发人员工具
10.6SafariWeb检查器(web inspector)分析面板 资源面板
10.7Chrome开发人员工具
10.8脚本阻塞
10.9pagespeed
10.10fiddler
10.11YSlow
10.12dynaYrace Ajax Edtion
10.13小结