【摘 要】介绍了一种新的Web开发技术———Ajax,该技术综合JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest等多种技术的综合应用所形成的一种新的设计方式;用图示说明了它的工作原理,并且指出了Ajax的应用方向。
【关键词】Ajax;Web应用;原理
1. Ajax简介
Ajax 是异步 JavaScript 和 XML (Asynchronous JavaScript and Xml)的英文缩写,是由 Jesse James Garrett “Ajax:A New Approach to WebApplications”提出的 ,并且很快就受到了广泛的关注和推崇 。 实际上Ajax 并不是一种革命性的新技术,而是各种成熟技术的整合并以一种崭新的角色的应用, 其中包括 JavaScript、XTHML 和 CSS、DOM、XML和 XSTL,以及最重要的一个对象 XMLHttpRequest。开发人员可以使用 XHTML 和 CSS 实现数据信息的一体化、标准化显示: 使用 DOM 实现浏览器端丰富的动态显示效果以及与服务器端的交互; 使用 XML 和 XSTL 进行浏览器和服务器两端的数据信息交换与处理; 使用 XMLHttpRequest 对象进行浏览器和服务器端的异步数据读取;使用 JavaScript 脚本实现对所有数据进一步处理。
1.1 JavaScript JavaScript 是一种基于对象和事件驱动并具有安全性能的脚本语言, 使用它可以与 HTML 、Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以开发客户端的应用程序。 网页设计者们常在设计的页面中加入很多脚本特效,例如字符串组成的时钟、滚动的状态栏、漫天飘舞的雪花等,这些都是JavaScript 的功劳 。 在 Ajax 中 JavaScript 则是主要推动力,它使 DOM、XHTML、XML 和 CSS 可以相互协作 , 并控制他们的行为 。 通过调用XMLHttpRequest 的属性和方法来获取服务器端数据, 然后调用 DOM的 API 来更新 Web 页面的内容,实现页面效果的动态控制。
1.2 XHTML 和 CSS XTHML 全称是可扩展的超文本标记语言(Extensible HyperText Markup Language), 是一种为适应 XML 可扩展标记语言而重新改造的 HTML 语言它结合了 XML 中的部分强大功能及 HTML 中大部分的简单特性, 但是相比 HTML 其设计上更加严密。
CSS 的全称是(Cascading Style Sheet),它的出现是为了弥补 HTML在格式修饰中的不足, 同时也为了能够实现页面格式的批量动态更新, 提高开发和维护效率, 进一步丰富页面的动态效果。 在 Ajax 中CSS 同样担当着界面表现的重任。 JavaScript 通过 XMLHttpRequest 对象和服务器进行交互,通常获取的都是单纯的数据,不包括表现元素,而将这些数据插入到文档本身就是一件严谨的工作,如果此时还需要使用 JavaScript 操作标记的属性来控制其外观, 会使代码更加复杂而且难以维护, 也无法做到使程序开发人员和界面设计人员分工合作,使用 CSS 则能很好的解决这些问题。
1.3 DOM DOM 的全称是文档对象模型 ( 即 Document ObjectModel),它在本质上是一种文档平台。 文档对象模型(DOM)是表示文档(比如 HTML 和 XML)和访问、操作构成文档的各种元素的应用程序接口(API)。支持 Javascript 的所有浏览器都支持 DOM。DOM 实际上是一个能够让程序和脚本动态访问和更新文档内容、结构和样式的一种语言平台。 DOM 是 W3C 定义的一种借口规范,它以树形结构表示HTML 和 XML 文档,定义了遍历这个树和检查、修改树的节点的方法和属性。
1.4 XML 和 XSTL XML 的全称是可扩展标记语言 (ExtensibleMarkup Language),是用来描述数据结构的一种语言。它数据传输非常规范并且可以将数据的内容与控制数据显示效果的格式清晰的分开,同时 XML 之所以称为可扩展的标记语言,是因为在 XML 中允许开发人员自行创建所需要的标签,正是因为 XML 的这一特点,我们可以借助自定义标记的方式分层次清晰的表达出数据之间的关系,所以有人也将 XML 文档称为“流动的数据岛”文件。 在 Ajax 中它以客户端和服务器端通信载体的身份出现。
XSTL 的全称是可扩展的样式表转换语言 (Extensible Stylesheet Transformation Language),根据W3C 的规范说明书,最早设计 XSLT 的用意是帮助 XML 文档 (document) 转换为其它文档。 但是随着发展,XSLT 已不仅仅用于将 XML 转换为 HTML 或其它文本格式,更全面的定义应该是: XSLT 是一种用来转换 XML 文档结构的语言。
1.5 XMLHttpRequest XMLHttpRequest 是 Ajax 技术中最重要的一个对象,最早是由微软作为一个 ActiveX 对象实现的,之后其他流行的浏览器都步其后尘实现了对 XMLHttpRequest 对象的支持。 通过XMLHttpRequest 对象,Ajax 可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做, 这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。 因此,XMLHttpRequest 是 Ajax 技术解决无需刷新整个页面就可以从服务器获取新数据这个问题的关键所在。
总之,Ajax 实际上上述这些技术的综合运用, 即基于 XHTML 和CSS,由 DOM 实现动态显示与交互,借助 XML 和 XSTL 进行数据交换及处理,而在这个过程中则是使用 JavaScript 来进行整合。
2. Ajax的工作原理
Ajax 核心是对象 XMLHttpRequest。 该对象是一种支持异步请求的技术。因此 Ajax 采用的是异步交互过程,而非传统的 Web 应用程序所采用的同步交互过程。 简而言之,XmlHttpRequest 使您可以使用JavaScript 向服务器提出请求并处理响应,而不阻塞用户。 使用 Ajax 技术相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。 并不是所有的用户请求都提交给服务器,像一些数据验证和数据处理等交给 Ajax 引擎自己来做, 只有确定需要从服务器读取新数据时再由 Ajax 引擎代为向服务器提交请求, 这样把以前的一些服务器负担的工作转嫁到客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约 ISP 的空间及带宽租用成本的目的。
3. Ajax在Web中的应用