标题：Ajax实战实例详解
作者简介
DaveCarane是著名的Ajax权威，领衔撰写了《Ajax实战》三部曲。
编辑推荐
《Ajax实战实例详解》是Aiax大师DaveCrane继巨著《Ajax实战》之后，与数位顶尖高手联袂推出的又一部Ajax力作。《Ajax实战实例详解》中直指Ajax/JavaScript应用程序开发中急需解决的各种具体问题，通过大量经典的可重用代码。
七位世界级Web专家巨献、引领你进入Ajax2.0时代、大量Ajax/JavaScript核心技巧和最佳实践。
Ajax赋予了web程序员开创未来的潜力。但是，Ajax应用程序的复杂性和开发难度也大大增加——如此空前的挑战，我们应该如何应对？
目录
第一部分Ajax基础
第1章拥抱Ajax
1.1Ajax，一种颠覆性的技术
1.1.1重新定义用户的工作流程
1.1.2重新定义Web应用的架构
1.2Ajax快速入门
1.2.1XMLHttpRequest简介
1.2.2实例化XMLHttpRequest
1.2.3发送请求
1.2.4处理响应
1.2.5XMLHttpRequest的其他方法和属性
1.3使用框架简化Ajax
1.3.1用Prototype库中的Ajax.Request对象创建请求
1.3.2简化Ajax响应
1.4总结
第2章Ajax的通信方式
2.1在服务器端生成JavaScript
2.1.1执行由服务器生成的代码
2.1.2遵循代码生成的实践准则
2.2JSON简介
2.2.1在服务器上生成JSON
2.2.2使用JSON往返传输数据
2.3在Ajax中使用XML和XSLT
2.3.1解析服务器生成的XML
2.3.2用XSLT和XPath来更好地处理XML
2.4在Web服务中使用Ajax
2.5总结
第3章面向对象的JavaScript与Prototype库
3.1面向对象的JavaScript
3.1.1对象的基本原理
3.1.2函数是一等公民
3.1.3对象构造器和方法
3.1.4编写JavaScript类：一个按钮
3.2Prototype程序库
3.2.1常用的函数和扩展
3.2.2对数组的扩展
3.2.3Hash类
3.2.4给函数绑定上下文对象
3.2.5面向对象的Prototype
3.2.6用Prototype重写Button类
3.3总结
第4章Ajax开源工具集
4.1Dojo工具包
4.1.1用Dojo进行异步请求
4.1.2用Dojo自动对表单进行编组
4.2Prototype
4.2.1Prototype中的异步请求
4.2.2用Prototype进行自动更新
4.2.3用Prototype进行定期更新
4.3jQuery
4.3.1jQuery基础
4.3.2用jQuery进行异步加载
4.3.3用jQuery获取动态数据
4.4DWR
4.5总结
第二部分Ajax最佳实践
第5章事件处理
5.1事件处理模型
5.1.1基本的事件处理注册
5.1.2高级事件处理
5.2Event对象与事件传播机制
5.2.1Event对象
5.2.2事件的传播
5.3使用Prototype进行事件处理
5.4事件类型
5.4.1鼠标事件
5.4.2键盘事件
5.4.3change事件
5.4.4页面事件
5.5事件处理实践
5.5.1在服务端验证文本字段
5.5.2无需页面重新加载的表单元素提交方式
5.5.3只提交发生改变的元素
5.6总结
第6章表单验证与提交
6.1客户端表单验证
6.1.1在客户端进行验证
6.1.2即时验证
6.1.3跨字段验证
6.2投递数据
6.2.1POST请求剖析
6.2.2将数据投递到服务器
6.2.3将表单数据投递到服务器
6.2.4检测表单数据变化
6.3总结
第7章内容导航
7.1网站导航原理
7.1.1大海捞“针”
7.1.2创造更好的“针”探
7.1.3导航和Ajax
7.2传统的Web导航
7.2.1一个简单的导航菜单
7.2.2DHTML菜单
7.3借鉴桌面应用的导航设施
7.3.1使用qooxdoo库实现Tab组件
7.3.2qooxdoo工具栏和窗口
7.3.3qooxdoo树组件
7.4桌面应用和Web应用的折中
7.4.1OpenRico库的Accordion控件
7.4.2创建HTML友好的树控件
7.5总结
第8章处理后退、刷新和撤销
8.1禁止用户访问浏览器的导航控件
8.1.1移除浏览器导航工具栏
8.1.2捕捉快捷键
8.1.3禁止右键弹出上下文菜单
8.1.4阻止用户导航历史记录或刷新页面
8.2与浏览器导航控件协作
8.2.1使用JavaScript内建的history对象
8.2.2使用Hash对象实现书签
8.2.3RSH框架介绍
8.2.4使用RSH框架维护客户端状态
8.2.5使用RSH在服务端维护应用程序状态
8.3处理撤销操作
8.3.1何时提供可撤销功能
8.3.2实现一个可撤销/恢复操作栈
8.3.3扩展撤销栈以支持更复杂的用户操作
8.4总结
第9章拖放
9.1支持拖放的JavaScript框架
9.2Ajax应用中的拖放
9.2.1支持拖放的Ajax购物车示例
9.2.2拖放列表中的数据操纵
9.2.3使用ICEfaces创建Ajax购物车
9.3总结
第10章对用户友好一点
10.1与延迟作斗争
10.1.1以反馈来应对等待
10.1.2显示进度
10.1.3Ajax请求超时
10.1.4处理多次点击
10.2预防和检测输入错误
10.2.1主动显示上下文帮助
10.2.2对表单输入项进行有效性验证
10.3维护焦点和分层顺序
10.3.1维护焦点顺序
10.3.2管理堆叠顺序
10.4总结
第11章状态管理和缓存
11.1客户端状态的维持
11.2服务器数据缓存
11.2.1Java类的数据的交换
11.2.2预取
11.3客户端状态的持久化
11.3.1以JSON形式存储和取回用户状态
11.3.2通过AMASS保存JSON字符串
11.4总结
第12章开放式WebAPI和Ajax
12.1Yahoo!开发者网络
12.1.1Yahoo!地图
12.1.2跨服务器代理
12.1.3Yahoo!MapsGeocoding
12.1.4Yahoo!交通
12.2Google搜索API
12.3Flickr图片分享
12.3.1Flickr用户内部标识
12.3.2Flickr图片和缩略图
12.4稍等！据说，还有很多……
12.4.1Amazon服务
12.4.2eBay服务
12.4.3MapQuest
12.4.4NOAA/国家气象服务
12.4.5更多Web服务接口
12.5总结
第13章使用Ajax进行混搭
13.1Trip-o-matic应用简介
13.1.1应用的目的
13.1.2应用概览和需求
13.2Trip-o-matic的数据文件
13.2.1我们应该采用什么格式
13.2.2旅行数据格式
13.2.3设置Flickr照片集
13.3TripomaticDigester类
13.3.1依赖性检查
13.3.2TripomaticDigester的构造器
13.3.3解读旅行数据
13.3.4加载经典信息
13.3.5收集元素的文本内容
13.4Tripomatic应用类
13.4.1Tripomatic类和构造器
13.4.2创建内容元素
13.4.3填充旅行数据
13.4.4显示地图
13.4.5加载缩略图
13.4.6显示照片
13.5Trip-o-matic应用页面
13.5.1Trip-o-matic的HTML文档
13.5.2样式之旅
13.6总结
……