内容简介
第1章 理解Ajax性能
权衡
优化原则
Ajax
浏览器
哇!
JavaScript
总结
第2章 创建快速响应的Web应用
怎样才算足够快
测量延迟时间
当延迟变得很严重时
线程处理
确保响应速度
Web Workers
Gears
定时器
内存使用对响应时间的影响
虚拟内存
内存问题的疑难解答
总结
第3章 拆分初始化负载
全部加载
通过拆分来节省下载量
寻找拆分
未定义标识符和竞争状态
个案研究:Google日历
第4章 无阻塞加载脚本
脚本阻塞并行下载
让脚本运行得更好
XHR Eval
XHR注入
Script in Iframe
Script DOM Element
Script Defer
document.write Script Tag
浏览器忙指示器
确保(或避免)按顺序执行
汇总结果
最佳方案
第5章 整合异步脚本
代码示例:menu.js
竞争状态
异步加载脚本时保持执行顺序
技术1:硬编码回调
技术2:Window Onload
技术3:定时器
技术4:Script Onload
技术5:降级使用script标签
多个外部脚本
Managed XHR
DOM Element和Doc Write
综合解决方案
单个脚本
多个脚本
现实互联网中的异步加载
Google分析和Dojo
YUI Loader
第6章 布置行内脚本
行内脚本阻塞并行下载
把行内脚本移至底部
异步启动执行脚本
使用script的defer属性
保持CSS和JavaScript的执行顺序
风险:把行内脚本放置在样式表之后
大部分下载都不阻塞行内脚本
样式表阻塞行内脚本
问题确曾发生
第7章 编写高效的JavaScript
管理作用域
使用局部变量
增长作用域链
高效的数据存取
流控制
快速条件判断
快速循环
字符串优化
字符串连接
裁剪字符串
避免运行时间过长的脚本
使用定时器挂起
用于挂起的定时器模式
总结
第8章 可伸缩的Comet
Comet工作原理
传输技术
轮询
长轮询
永久帧
XHR流
传输方式的前景
跨域
在应用程序上的执行效果
连接管理
测量性能
协议
总结
第9章 超越Gzip压缩
这为什么很重要
问题的根源
快速回顾
罪魁祸首
流行的乌龟窃听者实例
如何帮助这些用户
设计目标:最小化未压缩文件的尺寸
引导用户
对Gzip的支持进行直接探测
第10章 图像优化
两步实现简单图像优化
图像格式
背景
不同图像格式的特性
PNG的更多资料
自动无损图像优化
优化PNG格式的图像
剥离JPEG的元数据
将GIF转换成PNG
优化GIF动画
Smush.it
使用渐进JPEG格式来存储大图像
Alpha透明:避免使用AlphaImageLoader
Alpha透明度的效果
AlphaImageLoader
AlphaImageLoader的问题
渐进增强的PNG8 Alpha透明
优化Sprite
超级Sprite VS.模块化Sprite
高度优化的CSS Sprite
其他图像优化方法
避免对图像进行缩放
优化生成的图像
Favicons
Apple触摸图标
总结
第11章 划分主域
关键路径
谁在划分主域
降级到HTTP/1.0
域划分的扩展话题
IP地址和主机名
多少个域
如何划分资源
新型浏览器
第12章 尽早刷新文档的输出
刷新文档头部的输出
输出缓冲
块编码
刷新输出和Gzip 压缩
其他障碍
刷新输出时的域阻塞
浏览器:最后的障碍
不借助PHP进行刷新输出
刷新输出问题清单
第13章 少用iframe
开销最高的DOM元素
iframe阻塞onload事件
使用iframe并行下载
脚本位于iframe之前
样式表位于iframe之前
样式表位于iframe之后
每个主机名的连接
iframe中的连接共享
跨标签页和窗口的连接共享
总结使用iframe的开销
第14章 简化CSS选择符
选择符的类型
ID选择符
类选择符
类型选择符
相邻兄弟选择符
子选择符
后代选择符
通配选择符
属性选择符
伪类和伪元素
高效CSS选择符的关键
最右边优先
编写高效的CSS选择符
CSS选择符性能
复杂的选择符影响性能(有时)
应避免使用的CSS选择符
回流时间
在现实中测量CSS选择符
附录A 性能工具
索引