最近关注了一下,因为提得比较多。觉得这个东西根本的特征――正如嘟嘟老窝上说的(http://www.duduwolf.com/post/webdev_by_ajax.asp)――在于异步。相比传统web应用,ajax应用一样是无状态、断开式连接(虽然javascript的应用可以在客户端维护一些东西,不过我认为这里所说的“利用客户端的计算能力”根本不是什么值得赞扬的),但XmlHttpRequest允许客户用另一条线程去提交Request,这对用户体验提高的好处是很大的。
考虑一个桌面应用,在执行一个极为费时的操作时,如果程序变成“无响应”状态这是极为令人厌恶的,所以这种情况一般建议用另外一个线程来执行费时操作。然而在web应用中,考虑到信息在网络中的往返,我们可以认为哪怕一个最简单的操作都是极费时的。很长一段时间以来面对这种情况用户只能等待这个往返,这就好比桌面程序的“无响应”。由此我们可以类比出另一线程提交请求的好处。
至于有些人说ajax就是aj,ax不过是赶时髦强加上去,开始我是赞这个观点的(google suggest的返回就只是一个字符串,参考这个链接的返回值http://www.google.com/complete/search?hl=en&js=true&qu=ajax)。然而前几天看《程序员》上有人说ajax体现了一个SOA的思想,发现这个说法也很好玩,如果服务器端只是暴露web services接口,browser变成一个使用services的程序,那还真是优雅得可以。可惜如果客户端仅凭javascript+DOM来类似构建RIA的解决方案,那未免太勉为其难了一点。总之把ajax看成一种过渡技术,关注avalon比较合理一点。
Ajax啊!看看这个ajax框架吧: <a href=http://www.linb.net/linb>http://www.linb.net/linb</a> (jsLINB)