五、AJAX
Web应用跟普通客户端应用的最大不同是什么,就是它的响应方式是同步的页面跳转,在这个页面跳转发生的时候用户什么都做不了,只能看着鼠标漏斗慢慢旋转。而随着Google Map、Google Gmail这些应用的出现,改变了人们对Web应用的认识——Web应用无需页面跳转,也可以达到更新界面的效果了。其实早在各种论坛的动态树形结构出现的时候,就具备了这些技术,不过还是等到Google出手,才吸引了足够的眼光。
AJAX主要由以下技术组成:
1、采用XHTML, DOM实现动态显示
3、采用XML来传送数据。但这个不是强制的。
3、用Java Script控制这一切
目前在Open Source方面有许多Ajax Framework,我在对Ajax有所了解后,主要关注以下部分的技术:
1、浏览器与服务器交互
第一个问题是,服务器返回数据还是界面?如果服务器返回界面(也就是HTML)的话,浏览器的工作非常简单,直接用所得的HTML替换相应部分即可。如果传送数据回来,因为浏览器一端的语言是Java Script,必然要考虑如何让JavaScript方便操作。一种做法是采用XML方式;另外一种做法是将传送回来的数据转换成JavaScript对象。我个人的看法是采用XML方式,对服务器一端更加方便,要求最低;而换成JavaScript对象则方面客户端操作,因此最好将两者结合起来,只是不知道性能上有多大影响。
第二个问题是,客户端调用与服务器对象的对应关系。XMLHttpRequest对服务器的定位采用URL方式,这无论是对客户端还是服务器都是不方便的,最好有一种方式能够将客户端的对象与服务器的对象关联起来,就向Remote EJB一样,在客户端有一个句柄操作,开发人员完全不用关心传送细节。
2、浏览器的GUI Framework
JavaScript+DOM的威力早在两年前看到用
JavaScript完成的星级争霸就深刻领略到,网上还有很多用浏览器模拟多窗口系统的架构。不过对比其他GUI Framework,例如VB、Delphi等,能够有效提高生产效率的JavaScript+DOM似乎还没有出现。
而且我在想有没有可能将XHTML、DOM等技术作为底层技术,提供一个框架来封装他们。就像Windows编程最早采用Win32 API,后来用OWL、MFC一样。
在Mozillia随着Firefox推出
XUL技术、微软提出XAML后,所谓Rich Internet Application的讨论很是火热了一阵子,现在AJAX的火爆,同样也说明了人们对更好用户体验的Web应用的渴望。与其他技术所不同的是,AJAX完全基于现有的浏览器技术,也就是说仅仅依赖现有的浏览器,我们就能获得Rich Internet Application。它可以胜任大部分类型的应用(除了Photoshop这类重型客户端应用),而只需要一个浏览器。
所以我非常看好AJAX。除了微软之外,许多公司都在寻找这样一种环境——与操作系统无关,轻量级,运行大部分程序——AJAX提供了这种可能。目前能够体现AJAX优势的应用不断出现,但我更加希望看到一个Killer Framework,甚至是Killer IDE的出现。
(完)
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=733576