第二章影响Java
EE开发性能的因素及相关研究
图2.3展示了基于Aja)【的W曲应用模型,在基于AiaX的W曲应用中,Aja)【
引擎动态从服务器获得数据,而无需刷新用户界面【l¨。
下面是Aja)【应用程序所用到的基本技术:
HTML用于建立w曲表单并确定应用程序其他部分使用的字段。
JaVaS嘶pt代码是运行Ajax应用程序的核心代码,帮助改进与服务器应用程
序的通信。
DHTML(Dvn锄ic
HTML),用于动态更新表单。
文档对象模型DOM用于处理HTML结构(通过JaVaS嘶pt代码)和服务
器返回的XML(某些情况下)。
那么,Aja】【到底能给我们带来什么呢?
在一般的W曲应用中,用户填写表单的若干字段并单击“提交"按钮后整个
表单被发送至服务器,服务器将其转发给处理表单的程序,程序执行完成后再发
送回全新的页面。此页面可能是带有新表单(已经填充某些新数据)的HTML,
也有可能是一个确认的页面,或者是具有根据原来表单中输入数据选择的某些选
项的页面。这期间有个问题,在服务器上的程序处理和返回新表单时用户必须等
待。屏幕变成一片空白,等到了服务器返回数据(绘制页面的数据)后再重新绘
制页面。用户无法得到立即的反馈,交互性差。
Aja)【基本上可以理解为就是把JaVaS谢pt技术和ⅪⅥLH郇Request对象放
在W曲表单和服务器之间。当用户填写表单时,数据被发送给一些JaVaS嘶pt代
码而不会直接发送到服务器端。相反,JaVascript代码捕获到表单的数据并向服务
器端发送请求。而与此同时,用户屏幕上的表单不会闪烁、消失或延迟。也就是
说,JaVaScript代码在后台发送请求,用户甚至不知道这些,不知道JavaS嘶pt在
后台对服务器发送了请求。更棒的是,请求是异步发送的,就是说JavaS嘶pt代
码(和用户)不用等待服务器的响应。从而用户可以继续输入数据、滚动屏幕和
使用应用程序,而不会出现像之前的屏幕变成一片空白的情形。
接下来,服务器将数据返回给JaVaS嘶pt代码(仍然在w曲表单中),后者
决定如何处理这些数据。它可以立即更新表单数据,让人感觉应用程序是立即完
成的,表单没有提交或刷新而用户却得到了新数据。JavaS嘶pt代码甚至可以对收
到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是
X1Ⅵ】m郇Request的强大之处。它可以根据需要自行与服务器进行交互,用户甚至
可以完全不知道后台所发生的一切。结果就是类似于桌面应用程序的动态、快速
响应、高交互性的体验,但是背后又拥有互联网的全部强大力量。集桌面应用程