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