点对点(Ad-hoc)AJAX应用

经过数十年的演变,Web应用已经从静态HTML发展到DHTML,applets,Flash,最后发展到了AJAX[1] (Asynchronous JavaScript and XML ,非同步的JavaScript和XML )。通过谷歌地图及推荐(Google Maps and Suggest)的说明,AJAX技术通过提供与桌面应用程序同等水平的互动性和反应能力给Web应用带来了新生命。不同于applets或Flash,AJAX基于标准的浏览器和JavaScript,并且不需要专门的插件。

AJAX是新一代的DHTML,就像DHTML,它在很大程度上依赖于JavaScript监听用户活动产生的事件,然后动态的操纵浏览器中一个页面(亦称 DOM)的视觉表现。此外,它更近一步,能够使与服务器的沟通异步进行,即不需要离开或提交整个页面。它通过引入客户与服务器间轻量级的通信(light-weight communication )打破了基于页面的模式。妥善设计,AJAX可以给Web应用带来丰富的桌面通用组件,而且在Web应用程序的活动周期内可以动态更新这些组件并通过应用程序获得对组件的更多控制。

当提供给用户需要的交互性的同时,AJAX给已经很昂贵的Web应用程序开发增加了复杂性和技术先决条件。开发者不得不在浏览器中操纵DOM,并且使用不兼容甚至是错误的JavaScript与服务器通信,为了更好的交互性,开发者必须重复复制应用数据和业务逻辑以便于浏览。这样就增加了维护成本且面临在服务端与客户端同步数据的挑战。

底线是在关于处理请求方面,点对点(Ad-hoc)的AJAX应用与传统的Web应用没有区别。开发者仍然必须解决由单页性(page-based)和无状态(stateless-communication)模式造成的隔阂。



[1] Ajax是由Jesse James Garrett於Ajax: A New Approach to Web Applications中所提出的。