本书从概念、案例与框架三个角度来详细阐述Ajax开发技术,先介绍Ajax的由来、优势及其在Web开发中的地位,接着详细介绍Ajax的各项组成技术、封装、开源和商业框架等各种相关知识,并提供丰富实用的开发案例和综合案例,引导读者一步步地了解并掌握利用Ajax进行Web应用程序开发的方方面面。
本书供各类Web开发、网站建设与网页设计人员参考。
概念篇
第1章 Ajax介绍
1.1 Ajax的由来
1.2 Ajax的定义
1.3 Web应用程序的解决方案
1.4 Ajax的工作方式
1.5 小结
第2章 B/S请求响应机制与Web开发模式
2.1 HTTP请求响应模型
2.2 B/S架构的请求响应机制
2.3 Web开发模式
2.4 开发环境的设置与配置
2.4.1 下载Java开发工具包(JDK)
2.4.2 下载安装Tomcat
2.4.3 下载安装Eclipse 3.1.1
2.4.4 创建开发目录
2.5 小结
2.6 参考资料
第3章 Ajax概览
3.1 为什么使用Ajax
3.2 谁在使用Ajax
3.3 Ajax的应用方向
3.4 基于各种Web解决方案的Ajax技术选择路线
3.5 Ajax的缺陷
3.6 一个简单的Ajax例子
3.7 小结
第4章 Ajax用到的技术
4.1 HTML
4.1.1 HTML与Ajax
4.1.2 HTML常用标记
4.2 XML
4.2.1 XML与Ajax
4.2.2 XML基础
4.2.3 文档类型定义及声明
4.2.4 XML名域
4.2.5 操纵和解析XML
4.2.6 选择合适的XML生成方式
4.3 XHTML与CSS
4.3.1 XHTML、CSS与Ajax
4.3.2 XHTML与CSS基础
4.3.3 XHTML语法约束
4.4 Javascript
4.4.1 Javascript与Ajax
4.4.2 Javascript基本数据结构
4.4.3 Javascript表达式和运算符
4.4.4 Javascript的流程控制和函数
4.4.5 Javascript的对象
4.4.6 窗口及输入输出
4.5 DOM
4.5.1 DOM与Ajax
4.5.2 DOM眼中的HTML文档——树
4.5.3 HTML文档的节点
4.5.4 使用DOM操作HTML文档
4.5.5 使用DOM操作XML文档
4.6 XMLHttpRequest对象
4.6.1 XMLHttpRequest对象与Ajax
4.6.2 XMLHttpRequest对象的属性和方法
4.7 小结
4.8 参考资料
开发案例篇
第5章 简单的Ajax开发框架
5.1 如何使用Ajax
5.2 初始化对象
5.3 指定响应处理函数
5.4 发出http请求
5.5 处理服务器返回的信息
5.6 一个初步的Ajax开发框架
5.7 异常处理机制
5.8 中文乱码问题及其解决方案
5.9 小结
第6章 使用responseText处理返回的普通文本信息
6.1 案例1——数据校验
6.1.1 需求说明
6.1.2 案例解析
6.1.3 应用范围
6.2 案例2——级联菜单
6.2.1 需求说明
6.2.2 案例解析
6.2.3 应用范围
6.3 案例3——条目内容
6.3.1 需求说明
6.3.2 案例解析
6.3.3 应用范围
6.4 案例4——级联的下拉列表
6.4.1 需求说明
6.4.2 案例解析
6.4.3 应用范围
6.5 小结
第7章 使用responseXML处理返回的XML信息
7.1 案例5——获取元对象数据
7.1.1 需求说明
7.1.2 范例解析
7.1.3 应用范围
7.2 案例6——处理列表数据
7.2.1 需求说明
7.2.2 案例解析
7.2.3 应用范围
7.3 案例7——处理级联的数据
7.3.1 需求说明
7.3.2 案例解析
7.3.3 应用范围
7.4 案例8——更新保存数据
……
第8章 在普通文本和XML文档之间权衡
第9章 模拟MSN Space
护展篇
第10章 Ajax封装
第11章 开源Ajax框架
第12章 商业Ajax框架
参考文献
Ajax(Asynchronous Javascript and XML)是2005年2月才正式提出的一项综合技术,其主要特点是为Web开发提供异步的数据传输和交换方式,可以在不重载(Reload)刷新(Refresh)界面的情况下与服务器进行数据交换。
随着Ajax在Google Mail、Google Suggestion等产品的广泛运用,Ajax正逐渐吸引着Web开发界的眼球,成为Web开发的热点。Ajax通过综合运用Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest的技术,在提高数据交互速度,改善用户体验等方面发挥着重要作用。其中:
XHTML和CSS具有灵活、可拼装、基本、结构化等特点,被Ajax用来将系统数据呈现给用户,构建一个标准化的用户界面。
DOM由于对HTML、XHTML、XML拥有强大的操作能力以及结构化的操作方法,故被Ajax用来实现数据动态的显示与交互。
XML和XSTL在结构化的数据表示、传输、交互、共享方面有特别大的优势。因此,XML和XSTL在Ajax中主要用做数据交换与处理。
XMLHttpRequest是XMLHTTP组件的对象,它使Ajax可以向服务器发起异步的通信请求、并接收服务器返回的数据。这样,Ajax可以像桌面应用程序一样在不刷新界面的情况下与服务器进行数据交换。
Javascript因为具备简单、灵活、丰富的客户端控制和表现等优点,所以被用来操作HTML、XHTML、CSS,绑定和处理所有的数据。
在Ajax出现之前,Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest基本上是各自为政的,Ajax让这些技术第一次有了交集,并且组成一个整体。相信随着Ajax的逐渐成熟和更加广泛的运用,Ajax将为Web开发应用带来更多的惊喜。
在写作本书之前,笔者在个人Blog上发布了《Ajax开发简略》系列文章,引起了读者的强烈反响,并经CSDN、dev2dev等知名网站、论坛转载和收录。本书将继续延续《Ajax开发简略》系列文章通俗易懂、理论与案例并重等特点,详细介绍Ajax的历史、各项组成技术、封装、开源和商业框架等各种相关知识,并提供丰富实用的开发案例和综合案例,引导读者一步步地了解并掌握Ajax的开发方法。
本书读者对象
本书系统地介绍了利用Ajax进行Web应用程序开发的各个方面。适合的读者对象有:
需要利用Ajax来提供异步数据传输和交换方式的Web开发、设计人员。
在Web开发设计中需要不刷新页面的情况下,能与服务器进行交互的Web开发、设计人员。
需要提高Web系统数据传输速率的Web开发、设计人员。
需要改善Web系统用户体验的Web开发、设计人员。
对Web 2.0有浓厚兴趣的读者。
希望详细了解Ajax技术的其他读者。
本书特色
目前市场上有关Ajax的图书正在纷纷登场,但本书有如下的重要特色:
系统概述了Ajax开发的方方面面,以帮助读者全面了解Ajax。
遵循认知习惯,从简单到复杂,从单独编码到封装,再到通用框架,帮助读者一步步掌握Ajax的开发。
结合相关理论提供丰富、真实和完整的开发案例,让Ajax能真正应用到读者的实际开发工作中。
由一线开发人员专门针对国内开发人员撰写,更适合开发人员阅读与实践。
针对不同层次读者的需要,在有些章节末尾,推荐深入学习的参考资料。
示例应用和代码清单
本书中涉及的所有应用和代码清单都可以从博文视点(http://www.broadview.com.cn)网站资源下载文件中得到。本书凡涉及需要动态解析的页面都采用Java、JSP语言编写,代码提供了必要的注释,读者可以根据需要用其他语言改写。测试某一章节的应用代码是很容易的,只要简单地把应用复制到JSP Web容器(比如Tomcat),并根据需要和书中的说明进行相应的配置即可。每个应用的名称都是和相应的章节对应的,比如,AjaxCh01是第1章随带的应用,AjaxCh05是第5章随带的应用,依次类推。如果一个章节下面有多个示例应用,则分别用类似AjaxCh01a、AjaxCh01b、AjaxCh01c的规则命名。
本书内容
本书分为概念篇(第1~4章)、开发篇(第5~8章)和案例篇(第9~12章)三个部分共12章组成。具体内容如下:
第1章 Ajax介绍
本章介绍Ajax的起源和它的具体含义,以及Ajax在Web应用程序大家庭中的地位,并简述如何应用Ajax,帮助读者形成对Ajax的初步印象。
第2章 B/S请求响应机制与Web开发模式
本章简要介绍了HTTP协议以及Web系统遵循的B/S请求响应机制,概括了当前常用的几种Web开发技术(CGI、ASP、JSP、CGI、PHP、.NET)所采用的开发模式,并阐述了Ajax在Web系统中所处的位置。另外,还为后续章节的案例开发和测试搭建一个可用的开发环境。
第3章 Ajax概览
本章从宏观的角度了解为什么使用Ajax,Ajax有什么优点和缺点,Ajax都应用到了哪些系统和领域中,以及采用各种解决方案的开发人员应该如何选择相应的Ajax技术。另外,本章还举了一个简单的例子,让读者快速体验Ajax的应用效果。
第4章 Ajax用到的技术
Ajax是一项综合的技术。本章将引导读者掌握开发Ajax需要的相关技术基础,尤其是DOM、XMLHttpRequest和XML。通过本章的学习,读者能够具备Ajax开发的技术基础。
第5章 简单的Ajax开发框架
本章结合第4章提到的各项技术,在详细的讲解和案例中形成一个简单的典型开发框架。本书的第6~9章都将使用并扩展这个框架做示范。
第6章 使用responseText处理返回的普通文本信息
本章列举了4个案例来详细阐述如何运用responseText处理返回的普通文本信息。通过这些案例,读者可体会到Ajax对于提高数据传输速度、改善用户体验的独特作用。
第7章 使用responseXML处理返回的XML信息
本章列举了4个案例来详细阐述如何运用responseXML处理返回的XML信息。通过这些案例,读者可以体会到XML在结构化数据表示方面的重要作用,了解Ajax如何与XML交互。
第8章 在普通文本和XML文档之间权衡
responseText和responseXML是Ajax处理返回服务器信息的两种方式。本章列举了两者的优缺点,帮助读者权衡如何在需要的时候选择合适的处理方式。
第9章 模拟MSN Space
MSN Space是Ajax的一个典型应用。本章运用Ajax模拟了MSN Space的几个重要功能:固定链接、操作评论,以及管理列表项。
第10章 Ajax封装
本章根据第5~9章的内容,总结出四种封装Ajax的方法,以达到简化开发、提高开发效率、复用代码的目的。作为第11章、第12章的引子,本章的目的在于引导读者思考如何简化Ajax开发,通过适当的封装提高开发效率。
第11章 开源Ajax框架
本章简要介绍了包括DWR、Ajax Tags、AjaxAnywhere、SWATO等在内的几个开源框架,并对如何使用这些框架进行了示范。通过对比介绍,读者可以选用相应的开源框架、加入到自己的系统中,以实现加速Ajax编码的目的。
第12章 商业Ajax框架
本章列举了两个比较典型的商业框架,讲述了Ajax在商业产品上的运用,以作为开源Ajax框架的补充、借鉴和参考。
本书的开发篇和案例篇部分的案例需求,使用自然语言的描述方法。
排版约定
本书使用下列排版约定:
粗体(Bold)
用于强调重点,或者标识术语的第一次使用。
斜体(Italic)
此外,电子邮件地址、网址、FTP地址、文件名、目录名和新闻组也用斜体表示,Java的类名称也用斜体表示。
由于笔者水平和时间有限,书中错误在所难免,恳请读者批评指正。
在本书的写作过程中,我的家人以及玉锦等朋友给予了源源不断的支持和鼓励,在此表示特别的感谢。希望在本书完成之后,能有时间多陪伴家人和朋友。
本书编写过程中得到博文视点公司的大力支持,本书的策划编辑张毅给予了特别的帮助,在此表示衷心的感谢。
同时,也感谢一直关注《Ajax开发简略》和本书的朋友。
笔者的联系方式如下:
Blog:http://www.blogjava.net/eamoi
电子邮件:eamoi@163.com
作者
2006年4月
无封面