ajax|web
目前,在提供商业应用方面,IT行业对Web系统的依赖程度越来越高。Web浏览器虽然一直是向远程用户提供软件的一种理想的廉价方式,但它们并不能像桌面应用那样提供丰富的客户端功能。而通过AJAX(异步JavaScript及XML)则可以实现丰富的客户端交互能力和实时数据微量更新(micro-update),并且不需要使用任何一种私有的专用插件。
AJAX是一种使用多数浏览器内建工具的Web开发技术,它包含三个组成部分,即用于计算的JavaScript(即ECMA Script)、用于表示的动态HTML和用于客户端/服务器通信的XML HTTP。
AJAX的关键组件是XML HTTP。当它被下载至客户端浏览器后,便可以迅速实现Web页面与服务器之间的通信,而不用像传统基于页面的模型那样,在进行客户端与服务器的信息通信时必须重新加载整个Web页面。
这看起来虽然很简单,但却为Web应用开发人员打开了一扇尘封已久的大门。除了浏览器内建的组件外,它不需要依赖其他的任何东西。由于有些企业特别关注用户安装软件时可能产生的安全和后勤保障问题,而AJAX不需要向用户发布任何软件,因此也引起了这类企业的极大兴趣。
传统的Web应用架构(有时被称为Postback模型)的效率是很低的,因为它浪费了大量的通信带宽。当用户每次点击超级链接时,都会出现一次Postback(即重新加载)整个Web页面。而事实上,重新加载所有这些项目可能完全没有必要,也许只需要从数据库中调出很小的一段文本就能解决问题。
利用XML HTTP和JavaScript,开发人员可以通过异步方式向服务器请求一个区块的信息,而无需重新加载整个页面。这样就使Web应用能够更快地对用户的互动行为做出反应。
假设一位用户可能需要通过网页查看某位客户的详情。在传统的Web应用中,这位用户必须在点击后等待网页刷新,只有在这一步完成之后,用户才能看到客户的详细情况。但在AJAX模型中,用户只需点击客户的姓名就可以立即从服务器上检索到客户的数据,然后这些数据便会直接显示在Web页面上。
XML HTTP也可以解决传统基于页面的应用模型中存在的数据实时性问题。当包含某些数据的Web页面被下载至浏览器后,这些数据将会被认为是过时的内容。浏览器根本不可能知道服务器上的数据是否已经改变,或者是否仍然精确。如果当某项Web应用同时拥有多个用户时,这个问题就显得更加突出。而如果使用了AJAX,就可以在用户使用数据之前对其进行检查,避免上述问题的发生。
目前,所有主要的浏览器平台都支持AJAX,其中包括Internet Explorer、Mozilla FireFox、Netscape、Opera和Safari。还有很多开发工作都在努力实现XML HTTP的标准化。在去年,3W联盟组建了一个Web API工作组,专门从事HTTP功能(部分涉及AJAX)的规范开发工作。正是由于IT业界对AJAX的广泛支持,该小组才会对规范的制订工作如此重视。
通过执行有目标的信息更新(或者称为微量更新),就足以大幅度降低网络负载,并且可以与实时数据实现更快的互动与交流。我们可以通过计算总的传输字节数、总下载时间和完成某一任务时每秒可以执行多少个步骤来计量这种方式带来的好处。
AJAX的作用已经开始变得日益重要而且更加明显,它在Google Map和Salesforce.com等重量级应用以及一些大型和小型企业中都已得到使用。它的快速增长表明企业构建未来Web应用的方式正在发生深刻地变革。