1.3 真正的Ajax
尽管在Garrett的文章最后加了一些经常被问到的问题,但对于“Ajax到底是什么”仍然存在一些争议。简单地说,Ajax只不过是一种Web交互的方法。这种方法只是在客户端和服务器间传输少量的信息,从而给用户提供响应更及时的体验。
在传统的Web应用程序模型中,浏览器本身负责初始化向服务器的请求,以及处理来自服务器的响应,而Ajax模型不同,它提供了一个中间层(Garrett称之为Ajax引擎)来处理这种通信。Ajax引擎(Ajax engine)实际上只是一个JavaScript对象或函数,只有当信息必须从服务器上获得的时候才调用它。与传统的模型不同,不再需要为其他资源(诸如其他网页)提供链接,而是当需要调度和执行这些请求时,向Ajax引擎发出一个函数调用。这些请求都是异步完成的,也就意味着不必等收到响应之后就可以继续执行后续的代码。
服务器(传统模式中,它是提供HTML、图像、CSS或JavaScript)将配置为向Ajax引擎返回其可用的数据,这些数据可以是纯文本、XML或者需要的任何格式,唯一的要求就是Ajax引擎能够理解和翻译这种数据。
当Ajax引擎收到服务器响应时,将会触发一些操作,通常是完成数据解析,以及基于其所提供的数据对用户界面做一些修改。由于这个过程中传送的信息比传统的Web应用程序模型少得多,因此用户界面的更新速度将更快,用户也就能够更快地进行他们的工作。图1-1是在Garrett文章中原图的基础上进行修改的,它说明了传统Web应用程序模型和Ajax模型之间的区别。

图 1-1







