第1章 AJAX和RIA
1.1 变化中的Web
1.1.1 传统Web应用之痛
1.1.2 AJAX止痛药
1.2 企业中的AJAX
1.3 采用AJAX的驱动因素
1.3.1 可用性
1.3.2 网络利用率
1.3.3 以数据为中心
1.3.4 渐增的技巧、工具和技术升级
1.3.5 服务器中立
1.4 关于应用
1.4.1 AJAX技术
1.4.2 编程模式
1.5 AJAX的替换技术
1.5.1 XUL
1.5.2 XAML
1.5.3 Java Applet和Web Start
1.5.4 Adobe Flash、Flex和Apollo
1.5.5 OpenLaszlo
1.6 小结
1.7 资源
第2章 AJAX构建块
2.1 JavaScript
2.1.1 JavaScript类型
2.1.2 闭包
2.1.3 面向对象的JavaScript
2.1.4 prototype属性
2.1.5 面向对象编程和继承
2.1.6 易变性
2.1.7 线程
2.1.8 错误处理
2.1.9 命名空间
2.2 DOM
2.2.1 基本原理
2.2.2 操作DOM
2.3 CSS
2.3.1 继承和层叠
2.3.2 内联样式
2.3.3 样式表
2.3.4 动态样式
2.4 事件
2.4.1 事件流
2.4.2 事件绑定
2.4.3 跨浏览器事件
2.4.4 事件对象
2.5 客户端/服务器通信
2.5.1 XMLHttpRequest基础知识
2.5.2 处理数据
2.6 小结
2.7 资源
第3章 Web浏览器中的AJAX
3.1 基于组件的AJAX
3.1.1 渐增的AJAX
3.1.2 对服务器的影响
3.2 HTML标准
3.2.1 文档类型定义
3.2.2 盒子模型
3.3 启动加载AJAX组件
3.3.1 onload事件
3.3.2 浏览器编码技巧
3.4 模型-视图-控制器
3.4.1 视图
3.4.2 控制器
3.4.3 模型
3.5 AJAX MVC
3.5.1 AJAX模型
3.5.2 AJAX视图
3.5.3 AJAX控制器
3.5.4 面向方面的JavaScript
3.6 小结
3.7 资源
第4章 AJAX组件
4.1 命令式组件
4.2 声明式组件
4.2.1 服务器端声明式编程
4.2.2 声明式Google地图
4.2.3 替代方法
4.3 自定义声明式组件
4.3.1 行为式组件
4.3.2 声明式组件
4.3.3 关于声明
4.4 构建组件
4.4.1 基本功能
4.4.2 连接到服务器
4.4.3 最终版本
4.5 小结
4.6 资源
第5章 从设计到部署
5.1 设计
5.1.1 AJAX建模
5.1.2 应用模型-视图-控制器模式
5.1.3 预先考虑性能问题
5.2 原型设计
5.2.1 线框绘制
5.2.2 验证设计决议
5.3 测试
5.3.1 测试驱动开发
5.3.2 调试
5.4 部署
5.4.1 JavaScript压缩
5.4.2 图片合并
5.4.3 保护知识产权
5.4.4 文档
5.5 小结
5.6 资源
第6章 AJAX架构
6.1 多层架构:从单层到多层
6.2 异步消息
6.3 轮询
6.4 服务器推送
6.5 跟踪请求
6.6 缓存:处理数据
6.7 基本缓存
6.8 在组件中缓存
6.9 在浏览器中缓存
6.10 在服务器中缓存
6.11 在数据库中缓存
6.11.1 MySQL
6.11.2 MS SQL Server
6.11.3 Oracle
6.12 更新服务器模型:并发
6.12.1 悲观锁定
6.12.2 只读锁定
6.12.3 乐观锁定
6.12.4 冲突鉴定
6.12.5 冲突解决
6.12.6 自动的冲突解决
6.13 流量控制
6.13.1 客户端
6.13.2 服务器
6.14 可伸缩性
6.14.1 负载平衡和群集
6.14.2 AJAX可伸缩性问题
6.15 离线AJAX
6.16 FireFox离线存储
6.17 IE userData离线存储
6.18 使用Flash客户端存储
6.19 离线AJAX和并发
6.20 小结
6.21 资源
6.21.1 REST和Web服务
6.21.2 缓存
6.21.3 数据库性能
6.21.4 离线AJAX
第7章 Web Service和安全性
7.1 Web Service
7.2 Web Service协议
7.2.1 表象状态传输
7.2.2 XML远程过程调用
7.2.3 Web Service
7.2.4 选择合适的工具
7.3 客户端的SOAP
7.3.1 IBM Web Service JavaScript库
7.3.2 Firefox
7.3.3 IE
7.4 跨域Web Service
7.4.1 服务器代理
7.4.2 URL片段标识符
7.4.3 Flash跨域XML
7.4.4 脚本注入
7.5 安全性
7.6 AJAX的安全性考虑
7.7 跨域漏洞
7.7.1 跨站脚本
7.7.2 跨站请求伪造
7.7.3 JavaScript劫持
7.8 SQL注入
7.8.1 预处理语句
7.8.2 存储过程
7.8.3 XPath注入
7.9 数据加密和隐私
7.10 防火墙
7.11 小结
7.12 资源
第8章 AJAX可用性
8.1 常见问题
8.1.1 后退按钮和书签
8.1.2 页面大小
8.1.3 自动提交
8.2 可访问性
8.2.1 识别用户的可访问性需求
8.2.2 JavaScript和Web可访问性
8.2.3 屏幕阅读器和可访问性
8.2.4 不该为屏幕阅读器提供的解决方案
8.2.5 兼容JAWS的AJAX交互
8.2.6 键盘可访问性
8.3 可用性测试
8.4 迅速而又随性的测试
8.4.1 征募参与者
8.4.2 设计并运行测试
8.5 软件辅助测试
8.5.1 用于测试可用性的工具
8.5.2 对软件辅助测试的一般忠告
8.6 小结
8.7 资源
8.7.1 后退按钮
8.7.2 可用性测试
第9章 用户界面模式
9.1 显示模式
9.2 交互模式
9.3 小结
9.4 资源
9.4.1 拖曳资源
9.4.2 进度栏资源
9.4.3 活动指示器资源
9.4.4 颜色淡出资源
9.4.5 即时编辑资源
9.4.6 向下钻取资源
9.4.7 即时搜索资源
9.4.8 即时表单资源
第10章 风险和最佳实践
10.1 风险来源
10.1.1 技术风险
10.1.2 文化/政策风险
10.1.3 市场风险
10.2 技术风险
10.2.1 范围
10.2.2 浏览器能力
10.2.3 可维护性
10.2.4 向前兼容
10.2.5 第三方工具支持和代码过时
10.3 文化和政策风险
10.3.1 终端用户的期待
10.3.2 可培训性
10.3.3 合法性
10.4 市场风险
10.4.1 搜索引擎的可访问性
10.4.2 范围
10.4.3 货币化
10.5 风险评估和最佳实践
10.5.1 采用特定的AJAX框架或者组件
10.5.2 渐进增强和不唐突的JavaScript
10.5.3 Google网站地图
10.5.4 可视化提示
10.5.5 避免镀金式设计
10.5.6 制定维护计划
10.5.7 采用一种收益模型
10.5.8 把培训作为应用的一部分
10.6 小结
10.7 资源
10.7.1 搜索引擎优化
10.7.2 统计
10.7.3 网站地图
10.7.4 屏幕截取工具
第11章 案例研究
11.1 基于Web 2.0重新武装美国国防部
11.1.1 背景
11.1.2 挑战
11.1.3 解决方案
11.1.4 采用技术
11.1.5 成果
11.2 Agrium公司将AJAX技术整合到实际运作中
11.2.1 背景
11.2.2 挑战
11.2.3 解决方案
11.2.4 采用的技术
11.2.5 成果
11.3 AJAX助力国际运输与物流公司
11.3.1 背景
11.3.2 挑战
11.3.3 解决方案
11.3.4 采用的技术
11.3.5 成果
11.4 小结
11.5 资源
附录A OPENAJAX HUB