我眼中的 AJAX (没有分 :)
本人接触 AJAX 不久,没什么研究,不敢做什么“点评”,稍有点心得,供一笑。
在我的眼里,AJAX 已经具体化成一个叫做 SWATO 的东西了。这是一个开源的项目,提供了在服务器端和客户端的 framework。
我这么说,并不表示我认为 SWATO 是一个最好的实现(事实上,我并没有试用过多少个实现),只表示,我认为 SWATO 提供的东西足够了,相对于我期望从 AJAX 技术里得到的好处来说,足够了。
大家都承认,构成 AJAX 的每个单项技术,都不是什么新东西。事实上,我所供职的公司,在自己的软件产品里,已经一直在使用类似的方法了。为了在页面中呈现一棵树,因为内容非常多,无法一次下载,所以用了 DHTML 中一个叫 download 的 Behavior,每次点击向服务器发一个请求,服务器端(用 struts 写的程序)返回一段文本,客户端再进行文本解析,为这棵树增加枝叶。我们内部把这种技术称作“局部提交”,有时叫“逐级展开”,呵呵 :)
相信很多朋友都有类似的经历。
这样一堆代码,从功能上说是实现了,但显然其规范性、可重用性就差很多。等我看到 SWATO 后,我注意到它做了两个很重要的工作,一个是服务器端的包装(你只要写一个普通的 Java Class,提供一些有意义的 method 就可以了,经过简单的配置就可以供客户端请求了),一个是客户端的包装(我的 JavaScript 程序面对的不再是需要自己解析的文本,而是有 property 供使用的 object 了),而这就是我期望 AJAX 技术能给我带来的好处。
其实 SWATO 还做了另一个比较重要的工作,就是对常见的控件(文本框、下拉框等)进行了包装,使它们具有了特定的服务器端交互行为。不过从我个人工作需要来看,对这一块并不是特别感兴趣。
AJAX 并不是新技术,甚至也不是全新的概念,但是,明确作为一个概念把它提出来,我认为至少有两个好处:一个是让软件的设计者更加重视“客户体验”的重要性,并为实现更好的“客户体验”提供一个思路;再一个就是,鼓励大家提供一些具体的实现方案(比如像 SWATO 这样的),从而提高代码的可重用性。