Web应用与桌面应用程序相比,缺少了很多交互的特性,浏览器在Web应用中所处的角色仅仅是一个呈现HTML代码的容器,而不是一个独立应用程序的宿主。然而XMLHttpRequest技术的出现使得我们可以打破这种笨拙的开发模式,以一种全新的方式来做Web开发,为用户提供更好的交互体验。大量的探索者以XMLHttpRequest技术为基础,将一些原有的Web技术重新包装整合。经过了多年的不懈努力,终于在2005年出现了一个新的术语Ajax,来描述这样一类的技术和开发方式。
随着Web2.0时代的到来,Ajax已经成为人们谈论最多的技术术语。Ajax是2005年2月才诞生但是现在已经炙手可热的一项全新技术。这项新技术能够极大地改善网站的用户体验。Ajax技术可以提供高度交互的Web应用,给予用户更丰富的页面浏览体验。当Ajax的出现给所有的Web开发人员,它对Web应用来说可以是革命性的,它使得开发人员得以摆脱原有单调的开发模式,从而开发出更易用、交互性更强的Web应用。
关键在于,Internet默认的请求/响应模式有了重大转变,这正是Ajax的核心所在,尽管这并非全新的内容。Web应用开发人员现在可以自由地与服务器异步交互,这说明,他们可以完成许多原本只能在胖客户上完成的任务。Google、Yahoo和Amazon等公司已经走在前面,我们终于看到基于浏览器的应用也能与胖客户应用不相上下。利用Ajax,你可以尽享这两方面的好处:代码位于你能控制的服务器上,而且只要客户有浏览器,就能访问一个能提供丰富用户体验的应用。Web应用开发人员,可以应用某种或者多种服务器端技术来构建Web应用。在过去几年中,服务器端有了长足的发展,服务器端软件开发越来越容易,也越来越健壮,相比之下,客户端基本上被抛在了一边。Ajax技术的出现使这种状况有所改观,因为开发人员现在有了一个更丰富的客户端工具箱,有大量工具可以使用。
Ajax技术从本质上说是属于客户端的技术。但它的应用是精彩之处在于客户端与服务器的异步交互。而它实现的,却是胖客户端的功能,所以我们也可以这么认为:Ajax是一种新的胖客户端技术。
2 Ajax的概念
2.1 Ajax的定义
Ajax这个概念的最早提出者Adaptive Path公司的Jesse James Garrett认为:Ajax是异步java script 和XML(Asynchronous java script and XML)的英文缩写。而大力推广并使Ajax技术炙手可热的是Google。
Ajax是指一种创建交互式应用的网页开发技术。Ajax的核心理念是使用java script对象XmlHttpRequest发送异步请求。最初为XMLHttpRequest对象提供支持的是微软公司。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用java script向服务器提出请求并处理响应,而不阻塞用户。
实际上,Ajax不只是一种技术,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:
(1)基于XHTML和CSS标准的表示;对网页内容重新格式化,但不是使用HTML语言,因为HTML语法很不严格,匹配性也不好,使用性能差。
(2)使用文档对象模型(Document Object Model)进行动态显示和交互;比原来使用各种脚本和动态语言发好
(3)使用XMLXSLT进行数据交换与处理;所有的数据的存取都XML完成。
(4)使用XMLHttpRequest与服务器进行异步通信;使用XMLHttpRequest进行异步数据读取。
(5)使用java script绑定将它们绑定在一起。使用java script整合上述技术,绑定和处理所在数据。
2.2 Ajax的相关技术
在基于Ajax的应用中, Ajax核心技术有java script、XMLHttpRequest和DOM,如果所用数据格式为XML的话,还可以再加上XML这一项。
免责声明:本文仅代表作者个人观点,与本网无关。
2.1.1 XMLHttpRequest
XMLHttpRequest是Ajax技术的核心。它其实是XMLHTTP组件的对象,通过此对象,可以做到无需提交表单就可以实现与服务器的连接;无需刷新整个页面,就可以动态更新页面中一部分的内容。这样,Ajax可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。
XMLHttPRequest通常使用XML作为数据交换的载体,但也可使用其他的载体,如纯文本。简单来说,就是通过XMLHttPRequest发送信息给服务器,异步接收服务器处理并返回信息,然后通过java script动态更新页面的部分内容。XMLHttpRequest具体作用是在客户端传递XML数据给远程服务器端的。XmlDocument与XmlHttpRequest这两个技术是Ajax的核心。Ajax的关键是怎样把数据从远端获取回来。XmlDocument实际上是创建一个Document对象,这个对象是XML的Document对象。之所以要创建XML的Document对象,是因为互联网上XML格式的数据非常多,如果不创建XML的Document对象,取回来的数据就没法使用。
这样就明确了,我们可以从客户端传递XML数据到服务器应用程序,然后处理。下面需要做的就是将要显示的内容(包括新的控件和HTML文本)和数据在服务器应用程序中处理成为XML数据,再以逆向传输发送给客户端,然后用客户端的响应代码更新全部或部分页面区域而完成无刷新的功能。
2.2.2 java script
java script是一在浏览器中大量使用的编程语言,它一直被定位为客户端的脚本语言,应用最多的地方是表单数据的校验,或是做一些小游戏等等。但事实上,它是一门真正的编程语言,有着自己的标准并在各种浏览器中被广泛支持。在Ajax技术应用中,可以通过java script操作XMLHttpRequest,来与数据库进行交互。
2.2.3 DOM(Document Object Model)
DOM(即结构化的文本结构)是一个能够让程序和脚本动态访问和更新文档内容、结构和样式的语言平台。也就是说,它提供了文件的结构表述,并可以改变其中的內容及可见物。它提供了标准的HTML和XML对象集,并有一个标准的接口来访问并操作它们。DOM被分为不同的部分(核心、XML和HTML)和不同的版本(DOM1/2/3),其中,HTML DOM 将HTML文档视为嵌其他元素的树型结构元素。所有的元素,它们包含的文字以及他们的树型都可以被DOM树所访问到。它们的内容可以修改和删除,并且可以通过DOM建成立新的元素。元素的文字和它们的属性被识别为点。