标题：Ajax从入门到精通
版权信息
书 名: Ajax从入门到精通
作　者：陈华
出版社： 清华大学出版社
出版时间： 2008
ISBN: 9787302176428
开本： 16
定价: 76.00 元
内容简介
《Ajax从入门到精通》作为比较全面的Ajax教程书籍，涵盖了基本语言介绍（JavaScript）、DHTML技术（DOM）、Ajax技术核心知识、面向对象的JavaScript、数据组织方式（XML和JSON）等知识，并对开发工具和调试技巧以及流行的应用框架进行了介绍。尤其是本书的第10～15章，介绍了Ajax的高级技术，包括对XML和JSON的深入介绍，以及对Ajax应用程序架构的探讨、JavaScript面向对象编程的技巧等。
《Ajax从入门到精通》对于PHP、ASP、Java、.NET程序员有很大的帮助，同时适合Web前端开发人员、Web性能检测人员、需要掌握Ajax技术的测试人员、Web架构师、学习Web高级技术的初级程序员以及所有的Web普通开发人员作为必备参考用书使用。
编辑推荐
讲解Ajax的原理、开发、调试、跨浏览器兼容等高级技术用、JavaScrlpl实现最流行的Ajax框架和组件、解读最经典的JavaScript框架Prototype.js、详细介绍Web开发技术的优化、分析、lavaScript的面向对象编程和Aja×的数据形式、JSON、配有源代码光盘，提高学习效率。
准备篇
什么是Ajax
1.1Ajax概述
1.1.1关键技术：XMLHttpRequest
1.1.2Ajax名词的由来
1.2经典案例1：搜索关键词建议系统（GoogleSuggest）
1.3经典案例2：优秀的电子邮件服务系统（Gmail）
1.3.1注册Gmail
1.3.2Gmail主界面
1.3.3Inbox（收件箱）工作区域
1.3.4WebClip（网络剪辑）
1.3.5邮件操作区域
1.3.6操作邮件
1.4第一个Ajax应用程序：
HelloWorld!
1.5小结
Ajax技术构成篇
JavaScript：Ajax的开发语言
2.1JavaScript概述
2.1.1对JavaScript的误解
2.1.2JavaScript的版本
2.2数据类型和值
2.2.1数字
2.2.2字符串
2.2.3布尔值
2.2.4函数
2.2.5对象
2.2.6数组
2.2.7null值
2.2.8undefined值
2.3JavaScript的变量
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.4.5赋值运算符
2.4.6逻辑运算符
2.4.7字符串运算符
2.4.8其他运算符
2.5语句
2.5.1声明变量：var语句
2.5.2流程控制：if语句
2.5.3流程控制：elseif语句
2.5.4流程控制：switch语句
2.5.5循环：while语句
2.5.6循环：do/while语句
2.5.7循环：for语句
2.5.8遍历：for/in语句
2.5.9控制语句：break语句
2.5.10控制语句：continue语句
2.5.11函数语句：function语句
2.5.12函数返回值：return语句
2.5.13抛出异常：throw语句
2.5.14异常处理：try/catch/finally语句
2.5.15空语句
2.6JavaScript的函数
2.6.1函数的定义和调用
2.6.2实际参数列表：arguments属性的使用
2.7大小写敏感性
2.8JavaScript的注释
2.9JavaScript的保留字
JavaScript的常用对象
3.1保存多个数据元素的容器：Array对象
3.1.1数组的创建
3.1.2得到数组的长度
3.1.3添加、删除和替换数组元素
3.1.4得到数组片段
3.1.5反转数组
3.1.6将数组转换成字符串
3.1.7数组元素的排序
3.2字符串的处理：String对象
3.2.1获取字符串的长度
3.2.2字符串的截取
3.2.3字符串的替换
3.2.4大小写转换
3.2.5将字符串转换成数组
3.2.6拼接字符串的优化方法
3.3正则表达式：RegExp对象
3.3.1创建正则表达式
3.3.2正则表达式的语法规则
3.3.3正则表达式的属性
3.3.4用于模式匹配的String方法
3.3.5用于模式匹配的RegExp方法
3.3.6常用正则表达式
3.4日期和时间：Date对象
3.4.1Date对象的创建
3.4.2读取和设置日期及时间的各个部分
3.4.3日期和时间的换算
3.5复杂的数学运算：Math对象
3.5.1小数的取整
3.5.2得到随机数
3.5.3幂运算
3.5.4最大值和最小值
3.6操作浏览器窗口：window对象
3.6.1使用对话框
3.6.2改变窗口状态栏的信息
3.6.3延迟执行和定时执行
3.6.4URL的获取和跳转
3.6.5历史记录的前进和后退
3.6.6控制窗口的大小和位置
3.6.7打开和关闭窗口
3.6.8获得焦点和失去焦点
3.6.9取得用户显示器的信息
3.6.10取得用户浏览器的信息
3.7操作HTML文档：document对象
3.7.1文档的输出
3.7.2文档的标题
3.7.3文档的图像
3.7.4文档的超链接
3.7.5文档的表单
3.8应用实例
3.8.1在网页上显示自动更新的日期和
时间
3.8.2一个简单的小游戏：LuckySeven（幸运7）
3.9小结
DOM文档对象模型介绍
4.1基本概念
4.1.1树形结构
4.1.2结点的类型和组成
4.1.3结点之间的关系
4.2结点的引用
4.2.1根据id属性引用结点
4.2.2根据name属性引用结点
4.2.3根据标签名引用结点
4.2.4引用父结点
4.2.5引用子结点
4.2.6引用相邻的结点
4.3结点的操作
4.3.1创建元素结点
4.3.2创建文本结点
4.3.3添加结点
4.3.4插入子结点
4.3.5替换子结点
4.3.6复制结点
4.3.7删除子结点
4.3.8读取结点属性
4.3.9添加和修改属性结点
4.3.10删除属性结点
4.4控制元素的样式
4.4.1获取和设置元素的css类
4.4.2获取和设置元素样式
4.5事件处理
4.5.1事件模型和传播机制
4.5.2注册事件处理程序
4.5.3注销事件处理程序
4.5.4事件对象
4.5.5常用事件
4.6应用实例
4.6.1悬浮的广告
4.6.2可拖动的层
4.7小结
开发Ajax应用程序需要使用的工具
5.1开发工具：Aptana
5.1.1Aptana的下载和安装
5.1.2Aptana的界面介绍
5.1.3Aptana的使用
5.1.4Aptana的更新
5.1.5Aptana的卸载
5.2Firefox
5.2.1错误控制台：ErrorConsole
5.2.2优秀的调试插件：Firebug
5.3HTTP调试工具：Fiddler
5.3.1Fiddler的下载和安装
5.3.2使用Fiddler
5.4小结
Ajax应用技术分析篇
HelloWorld！分析
6.1XMLHttpRequest对象详解
6.1.1初始化请求
6.1.2设置请求的HTTP头信息
6.1.3发送请求
6.1.4获取请求的当前状态
6.1.5指定请求状态改变时的事件处理句柄
6.1.6返回当前请求的HTTP状态码
6.1.7从返回信息中获取指定的HTTP头
6.1.8获取返回信息的所有HTTP头
6.1.9取得返回的数据
6.1.10取消当前请求
6.2搭建基本的Ajax开发框架
6.2.1创建XMLHttpRequest对象
6.2.2发送请求和回调函数
6.2.3一个封装好的基本Ajax应用程序开发框架
6.3小结
完善的Ajax应用程序：Ajax留言本
7.1留言本的需求
7.2留言本的基本设计
7.2.1系统环境
7.2.2留言的数据和操作
7.2.3数据库设计
7.2.4后台功能模块
7.2.5前台脚本功能模块
7.2.6系统文件结构和文件清单
7.3留言本的实现
7.3.1创建数据库
7.3.2完成前台界面：index.html
7.3.3完成前台界面：样式表
7.3.4完成后台功能模块：数据库操作模块
7.3.5完成后台功能模块：留言本逻辑处理模块
7.3.6完成后台功能模块：接口模块
7.3.7完成前台功能模块：基本Ajax功能模块
7.3.8完成前台功能模块：读取和发送留言
7.3.9整合留言本程序
7.4留言本的功能测试
7.5小结
调试技巧
8.1深入解析Firebug的调试功能
8.1.1检查常规错误
8.1.2完善的log功能
8.1.3控制台的命令行功能
8.1.4断点、单步执行和变量信息
8.1.5在其他浏览器中使用Firebug的控制台
8.1.6屏蔽测试代码
8.2使用Aptana的集成调试功能
8.2.1配置集成调试环境
8.2.2启动调试
8.2.3断点、单步执行和变量信息
8.2.4使用console.log和dump输出文本信息
8.2.5使用aptana.trace输出调用堆栈信息
8.2.6使用断言
8.2.7屏蔽调试代码
8.3小结
常见问题
9.1编码的处理
9.1.1文件编码与声明编码
9.1.2Ajax请求乱码
9.1.3发送数据乱码
9.2控制缓存
9.3选择合适的请求方式
9.4控制多个Ajax请求
9.4.1轮询模式
9.4.2事件响应模式
9.5Ajax请求的安全性
9.5.1身份验证
9.5.2防范SQL注入
9.5.3防范JavaScript注入
9.6小结
Ajax应用进阶篇
数据的组织方式：XML
10.1XML概述
10.2XML语法规范
10.2.1XML声明
10.2.2根节点
10.2.3开始和结束标记
10.2.4属性
10.2.5合理地嵌套包含
10.2.6大小写敏感性
10.2.7空白被保留
10.2.8XML的注释
10.2.9元素的命名
10.2.10转义字符
10.2.11CDATA部件
10.3XML命名空间
10.4XMLSchema
10.4.1基本示例
10.4.2定义元素
10.4.3简单类型
10.4.4复合类型
10.4.5定义属性
10.4.6默认值
10.4.7约束特殊值
10.4.8列表类型
10.4.9联合类型
10.4.10匿名类型定义
10.4.11简单的复合类型
10.4.12混合内容
10.4.13任意类型
10.4.14分组和引用
10.4.15命名冲突
10.4.16关联XML与XMLSchema
10.5XMLDOM
10.5.1创建XMLDOM对象
10.5.2加载XML文档
10.5.3加载XML片段
10.5.4取得XML内容
10.6强大的检索工具：XPath
10.6.1基本示例
10.6.2选取节点
10.6.3谓语
10.6.4通配符
10.6.5使用多个路径
10.6.6坐标轴
10.6.7运算符
10.6.8路径表达式的步语法
10.6.9XPath函数
10.7格式化XML工具：XSL
10.7.1基本示例
10.7.2XSL声明
10.7.3使用模板
10.7.4取得数据
10.7.5使用for-each元素代替模板
10.7.6使用sort元素进行排序
10.7.7流程控制
10.7.8创建元素和属性
10.7.9指定输出格式
10.8在客户端格式化XML
10.9跨浏览器的XML开发框架：zXML
10.10应用实例：Ajax文章列表程序（XML）
10.10.1确认需求
10.10.2系统设计
10.10.3系统实现：创建数据库
10.10.4系统实现：完成后台模块
10.10.5系统实现：完成前台界面
10.10.6系统实现：完成前台模块
10.10.7系统实现：编写xsl样式表
10.10.8整合系统
10.10.9系统测试
10.11小结
数据的组织方式：JSON
11.1JSON的语法结构
11.1.1JSON的基本结构
11.1.2JSON中值的类型
11.2JSON的语言支持
11.2.1在JavaScript中读取JSON数据
11.2.2在JavaScript中输出JSON数据
11.2.3在PHP中使用JSON
11.2.4在C#中输出JSON数据
11.2.5在C#中输出带类型说明的JSON数据
11.2.6在C#中读取JSON数据
11.2.7更多语言支持
11.3JSON的优点和不足
11.3.1JSON的优点
11.3.2JSON的不足
11.4将XML转换为JSON
11.5小结
JavaScript面向对象编程（OOP）
12.1JavaScript中的类
12.1.1创建类
12.1.2类的属性
12.1.3类的方法
12.1.4公有属性和私有属性
12.1.5公有方法和私有方法
12.1.6静态属性和静态方法
12.1.7原型对象prototype
12.2JavaScript中的继承
12.2.1对象冒充
12.2.2使用对象冒充实现继承
12.2.3继承原型对象中的属性和方法
12.2.4封装继承方法
12.3更多技巧
12.3.1属性的封装
12.3.2实现多态
12.3.3命名空间
12.3.4实现短类名
12.4使用JSVM进行代码组织
12.4.1下载和配置JSVM
12.4.2路径和文件名的约定
12.4.3编写类
12.4.4类的按需加载
12.4.5在类中引用其他类
12.5小结
跨浏览器的兼容性问题
13.1使用getElementById代替idName
13.2表单元素的引用问题
13.3访问集合对象成员的问题
13.4读取自定义属性的问题
13.5常量的定义问题
13.6input元素的type属性读写问题
13.7模态窗口的问题
13.8frame的操作问题
13.9innerText的问题
13.10对父元素的引用问题
13.11getElementsByName的问题
13.12outerText的问题
13.13outerHTML的问题
13.14小结
Prototype.js框架介绍
14.1Prototype.js常用方法介绍
14.1.1使用$方法代替document.getElementById
14.1.2使用$$方法获得元素引用
14.1.3根据css类名取得元素集合
14.1.4使用Try.these尝试运行多个函数
14.1.5使用$F方法来获得表单元素的值
14.1.6数组迭代的简化方法
14.1.7设置元素的样式
14.1.8切换元素的隐现状态
14.1.9序列化表单值
14.1.10转换HTML标签
14.2基于Prototype.js的类和继承
14.2.1使用Class.create()创建类
14.2.2Prototype.js中的继承
14.3Prototype.js中的事件处理
14.3.1注册事件处理函数
14.3.2注销事件处理函数
14.4Prototype.js的Ajax功能
14.4.1Ajax.Request方法详解
14.4.2用Ajax.Updater更新界面
14.4.3用Ajax.PeriodicalUpdater定时更新界面
14.4.4使用Form.request方法无刷新提交表单
14.5基于Prototype.js的留言本程序
14.6小结
第15章关于架构的思考
15.1REST架构模式
15.2Web应用程序的发展史
15.2.1提供静态文档的Web站点
15.2.2早期的动态Web应用程序
15.2.3融入式Web应用程序
15.3Ajax为REST带来新的契机
15.3.1缓存Ajax程序引擎
15.3.2缓存Ajax数据
15.4小结
Ajax的缺陷及补救
16.1搜索引擎的收录问题
16.1.1问题产生的原因
16.1.2解决办法
16.2前进和后退的问题
16.2.1问题产生的原因
16.2.2Firefox下的解决办法
16.2.3在IE下的解决办法
16.3小结
Ajax实战篇
Ajax高级表单验证程序
17.1确定需求
17.2基本设计
17.3代码实现
17.3.1实现EventManager类
17.3.2实现Request类
17.3.3实现Validator类
17.3.4实现FormItemValidator类
17.3.5实现FormValidator类
17.4测试
Ajax动态联动菜单
18.1确定需求
18.2基本设计
18.3实例代码
18.4测试
Ajax聊天室
19.1确定需求
19.2基本设计
19.2.1系统结构
19.2.2实体及数据库设计
19.2.3后台功能模块
19.2.4请求控制器
19.2.5前台界面
19.2.6前台功能模块
19.3实例代码
19.3.1建立数据库
19.3.2实现后台功能模块
19.3.3请求控制器
19.3.4界面HTML和CSS代码
19.3.5前台功能模块
19.3.6加入表情图标
19.3.7整合程序
19.4测试
附录AJavaScript速查手册
附录BHTMLDOM速查手册
附录CPrototype速查手册