文档介绍:本系列的上一期文章(请参阅 参考资料 中的链接),我们介绍了Ajax应用程序,考察了推动Ajax应用程序的基本概念。其中的核心是很多您可能已经了解的技术:JavaScript、HTML和XHTML、一点动态HTML以及DOM(文档对象模型)。本文将放大其中的一点,把目光放到具体的Ajax细节上。本文中,您将开始接触最基本和基础性的有关Ajax的全部对象和编程方法:XMLHttpRequest 对象。该对象实际上仅仅是一个跨越所有Ajax应用程序的公共线程,您可能已经预料到,只有彻底理解该对象才能充分发挥编程的潜力。事实上,有时您会发现,要正确地使用 XMLHttpRequest,显然不能 使用 XMLHttpRequest。这到底是怎么回事呢?——。,应该首先问一问“?”,实际上它指的就是具有完全不同的请求和响应模型的传统Web。比如,网站上点击一个按钮或者输入搜索项。就会对服务器发送一个请求,然后响应再返回到浏览器。该请求不仅仅是图书和书目列表,而是另一个完整的HTML页面。因此当Web浏览器用新的HTML页面重绘时,可能会看到闪烁或抖动。事实上,通过看到的每个新页面可以清晰地看到请求和响应。(在很大程度上)消除了这种看得见的往复交互。比如访问GoogleMaps或Flickr这样的站点( 参考资料)。比如在GoogleMaps上,您可以拖动地图,放大和缩小,只有很少的重绘操作。当然这里仍然有请求和响应,只不过都藏到了幕后。作为用户,体验更加舒适,感觉很像桌面应用程序。。需要关心的是如何使这些新的交互成为可能。显然,仍然需要发出请求和接收响应,但正是针对每次请求/响应交互的HTML重绘造成了缓慢、笨拙的Web交互的感受。因此很清楚,我们需要一种方法使发送的请求和接收的响应只 包含需要的数据而不是整个HTML页面。惟一需要获得整个新HTML页面的时候就是希望用户看到 新页面的时候。但多数交互都是在已有页面上增加细节、修改主体文本或者覆盖原有数据。这些情况下, 更新整个HTML页面的情况下发送和接收数据。对于那些经常上网的人,这种能力可以让您的应用程序感觉更快、响应更及时,让他们不时地光顾您的网站。回页首XMLHttpRequest简介要真正实现这种绚丽的奇迹,必须非常熟悉一个JavaScript对象,即 XMLHttpRequest。这个小小的对象实际上已经在几种浏览器中存在一段时间了,、Ajax和大部分其他内容的核心。为了让您快速地大体了解它,下面给出将要用于该对象的很少的几个 方法和属性。open():建立到服务器的新请求。send():向服务器发送请求。abort():退出当前请求。readyState:提供当前HTML的就绪状态。responseText:服务器返回的请求响应文本。如果不了解这些(或者其中的任何 一个),您也不用担心,后面几篇文章中我们将介绍每个方法和属性。现在应该 了解的是,明确用 XMLHttpRequest 做什么。要注意这些方法和属性都与发送请求及处理响应有关。事实上,如果看到 XMLHttpRequest 的所有方法和属性,就会发现它们都 与非常简单的请求/响应模型有关。显然,我们不会遇到特别新的GUI对象或者创建用户交互的某种超极神秘的方法,我们将使用非常简单的请求和非常简单的响应。听起来似乎没有多少吸引力,但是用好该对象可以彻底改变您的应用程序。简单的new首先需要创建一个新变量并赋给它一个 XMLHttpRequest 对象实例。这在JavaScript中很简单,只要对该对象名使用 new 关键字即可,如 清单1 所示。<scriptlanguage="javascript"type="text/javascript">varrequest=newXMLHttpRequest();</script>不难吧?记住,JavaScript不要求指定变量类型,因此不需要像 清单2 那样做(在Java语言中可能需要这样)。=newXMLHttpRequest();因此在JavaScript中用 var 创建一个变量,给它一个名字(如“request”),然后赋给它一个新的 XMLHttpRequest 实例