神华集团两学一做登陆网站网站建设与维护案例
18.1.2 AJAX改变了请求/响应过程
与前一节中讨论的过程相反,支持AJAX的Web页面在客户端上包含一个JavaScript库,该库负责调用Web服务器。在发送请求并得到部分页面的一个响应时,这个JavaScript库就会调用Web服务器,在使用脚本时也是如此;接着客户端上的库更新这部分页面,但没有更新整个页面。整个页面的更新需要给浏览器发送许多代码,每次都要处理所有这些代码。如果只处理部分页面,终端用户就会觉得页面比较"流畅",页面似乎响应速度更快。更新部分页面所需的代码量比较少,可产生终端用户期望的响应速度。图18-2显示了这个请求/响应过程的示意图。
图 18-2
如图18-2所示,首先在最初的请求和响应中发送整个页面。之后,使用客户端脚本库完成页面所需的部分更新。这个库可以进行异步页面请求,更新需要更新的部分页面。它的一大优点是更新操作所需传送的数据最少。在只对页面有很少的改动时,更新部分页面比再次调用整个页面更好。
AJAX依赖于几个技术。***个是XMLHttpRequest对象,这个对象允许浏览器与后端服务器通信,通过MSXML ActiveX组件可以在Microsoft环境下使用该对象(自Internet Explorer 5版本之后)。当然,另一个重要的组件是JavaScript。这个技术允许客户端开始与后端服务通信,包装一条消息,之后发送给任意服务器端的服务。AJAX的另一个方面是支持DHTML和Document Object Model(DOM)。在接收到来自服务器的异步响应时,这些技术会改变页面。***一部分是从客户端传送到服务器上的数据,采用XML格式或更重要的JSON格式完成该传送。
对XMLHttpRequest对象的支持使客户端脚本库中的JavaScript函数可以调用服务器端的事件。如前所述, 典型的HTTP请求一般由浏览器发出。浏览器也负责处理来自服务器的响应,在发出响应后,再在浏览器中重新生成整个Web页面。该过程如图18-3所示。
如果使用JavaScript库中的XMLHttpRequest对象,就不能使用浏览器启动对整个页面的请求,而要使用客户端的脚本引擎(它基本上是一个JavaScript函数)来启动请求和接收响应。由于不是发出一个请求和响应来处理整个Web页面,因此可以跳过许多不需要的页面处理过程。这就是AJAX Web请求的本质,如图18-4所示。
AJAX打开了方便之门。Microsoft提供了必要的脚本引擎,自动完成需要的通信工作,以支持AJAX类型的功能。
(点击查看大图)图 18-3
(点击查看大图)图 18-4
【责任编辑:云霞 TEL:(010)68476606】
点赞 0