最早正式提出Ajax这个概念的应该是Adaptive Path的
这篇文章,从文中我们可以知道Ajax不是一种新技术,实际上它不是一种技术,而是几种技术的合称,在这几种技术中我认为最为关键的是:
1. XmlHttpRequest:能够以异步的方式从服务端获取数据,对用户透明,终于摆脱了“页面跳转、每次刷新”的交互方式!
2. DOM:动态地更改显示,例如根据获取的数据更改某个TextBox的内容。
通过采用Ajax,Web应用可以表现得类似普通的桌面应用,对最终用户的体验来说应该是一种回归。我猜想作为非IT行业的最终用户来说,可能会认为——“应用界面本来就是这样的,以前用Windows程序不都如此吗,只是你们弄出什么Web应用后才把界面搞得如此繁琐”!
Ajax改变了人们对Web应用的认识,特别是在Google一系列应用
Gmail、
Google Maps推出后,Web应用几乎“言必称Ajax”,现在甚至提出“Is
Ajax gonna kill the web frameworks?”这样的问题!
现阶段来说,这个问题的答案当然是“NO”。
实际上Ajax只是几种基础技术的集合,并不会自然而然地成为一个客户端的开发平台,还需要在Ajax的基础上解决不少问题。
只要在google搜索,就能找到大量着眼于改进Ajax的项目,从反面来说每个项目都是在针对Ajax所存在的缺陷进行改进。这个国人创建的项目
ESS Framework的
演讲稿就提到不少JavaScript的问题,值得看看。而且像自动测试困难这些问题不是修修补补能够解决的,现在Ajax和开发社区正处于蜜月期,等蜜月期过去估计怨言就出来了。像EJB这样的技术也是因为测试困难等问题就被骂的狗血喷头。
目前来说,可靠的方式是将Ajax和某个Web Framework结合使用,Web
Framework负责主要部分,Ajax只是负责改善界面体验。更进一步,可能将Ajax纳入某个Web
Framework——例如JSF这样基于组件的技术,将组件的展现用Ajax技术实现,这样开发人员只是面对组建编程,无需了解具体的Ajax技术。
但是以后,随着技术的发展,我相信总会有Web界面技术(Ajax或者别的Web客户端技术)能够达到类似Delphi、VB这样的水平,那么Web
Framework的确就该退出舞台。杞人忧天一下,那时候也许我们所关心的估计有:
1、客户端与服务端的对象远程传输和映射问题
2、业务逻辑在客户端和服务端的分工问题