自从 Jesse James Garrett 创造了 Ajax 这个名词,到现在已经过去十八个月了,AJAX 几乎让 Web 开发彻底改头换面。在这一年半的时间里,发生了很多事情,包括 Web 2.0 的热炒,许多创建或使用富互联网技术公司的诞生或复苏,还有真正动态化的在线软件层出不穷。很明显,AJAX 这个名词受到开发业界的广欢迎,已经真正的走入到我们生活中,Web 应用程序也达到前所未有的发展。
然而我们大多数人知道,其实在AJAX这个术语诞生前,这项技术的发展就已经为人们所熟知了。之所以AJAX的思想能迅速占据我们的头脑,因为它向我们指出了一个重要的新开发方向,AJAX技术可以说到了爆发的时间。强大功能的浏览器、高速带宽的网络连接、在线软件的趋势和开发工具的发展,这一切注定了AJAX的流行,但是在这些荣誉的光环背后关于Ajax的讨论或争论也一直没有停止过。
一直以来,Web开发社区关于Ajax方方面面的事情一直在争论不体,包括它的强大和不足、合适的应用和不可避免的缺陷等。我想我也应该分享一下我的观点,对于过去十八个月里让Web和浏览器焕发生机的AJAX技术,谈一下我的看法。AJAX的确帮助我们走向了下一代主流软件平台,它在创建个人或商业应用等方面,已经超越了传统的软件开发平台,以下仅仅是我的个人观点。
1、 不为浏览器而生的Ajax
如果你是一个网络高手,你对Ajax一定不会陌生,从先前默默无闻到现在火爆发展,不可不称为这是一个奇迹,Ajax在五年前并没有向今天这样让人们所熟知,因为他不并是为浏览器而生的一种技术,Ajax低效的代码编写方式,同时也没有强大的第三方开发工具支持,要想设计出清晰的javascript软件,不经过严格的训练和努力是无法实现的,而且在不同的浏览器里调试Ajax,是一件非常令人头疼的事情。
2、量身订做自已的Web服务需求
我一直认为Ajax要开发许多新的Web服务,来满足应用程序数据和后端存储的需要。实际上,对于那些没有正规的Web服务架构的服务终端项目,更倾向于使用HTML或简单的传统的HTTP POST。这样就使得人们可以非常容易的转向Ajax开发,可以在后端轻松的重用已经存在的HTTP服务,而不是转向复杂的SOAP或REST/WOA等。尽管这可能导致体系结构的混乱,可能会对日后带来一些麻烦,但它的确可以让人们非常轻松的转向AJAX开发提供条件。
3、Ajax比传统Web设计和开发更棘手
HTML界面约定的丧失性、隐藏或潜在功能的无限制性、编程创建页面元素非声明性、以及其他一些Ajax的内在特性,这些特性都与传统的Web设计和开发方式背道而弛,Ajax并且要求Web设计者必须对DOM、Javascript和CSS的技术有相当的功底,对于一个传统的Web开发者来说还没有一条更便捷的路可以选择,同时也没有一款能够让开发变简单的开发工具,我们期待Ajax能够在Web开发中更易懂、更高效。
4、Ajax工具和组件仍在不断出现,现今还没有明显的领先者。
Ajax工具和组件满天飞,不像Eclipse一枝独秀,统领全雄,虽然Dojo在这个领域有很好的口碑,但这些成绩还是远远不够的。例如,Dojo框架目前的版本依然是0.3版。而且紧随其后的种种工具,框架和组件库还有很多,其优点和Dojo不相上下。Dojo的优势还不名显,开发人员面对如此多的选择往往是投其所好,所以在工具和组件方面还没有绝对的领先者可供选择。
5、优秀的 Ajax 程序员很难找。
有人说曾经说过一个优秀的Java开发人员好找,但是一个优秀的Ajax人才,却是比登天还难,虽然此语有些太过,但是我们不难看出,要建造一个复杂的Ajax应用要远比Web设计技能难得多,而且很多有经验的开发人员都不太喜欢JavaScript编程和调试,这种情况自然就形成了Ajax优秀人才的缺少。
6、必须积极地对付浏览器模型对 Ajax 的限制。
Ajax技术并非Web开发完美结合的产物,它有几个致命的弱点,一个是它会违反现有的Web模型,譬如,加书签,后退按钮等等。另外,Ajax也缺乏桌面软件的的很多强处,譬如能离线运行,访问本地硬盘存储等,但Flash 的本地存储和即将发行的Apollo平台能应付这类问题,Ajax要想再次成为众的焦点,解决上述问题刻不容缓。
7、Ajax 只是成功RIA策略的一个因素。
如果你想让Ajax实现更多的在线功能,那么你必须将类似Flex,OpenLaszlo,以及WPF/E等这样的RIA平台放在考虑范围之内,然而Ajax对此几乎无能为力。然而Ajax并未停止前进的脚步,特别是在后端服务器向服务器端推送、Web服务和企业环境的支持等,这也是Ajax在RIA策略上的成功的一个因素。
当然,软件项目应该知道的事情还有很多,还有许多其他的事情,以上是我认为比较重要的事情。受到全球面向服务价格体系增长的影响,在线AJAX组件正在不断的出现,例如Google Maps等,,Ajax的技术也在不断理新,道琼斯新闻曾报道IBM、Google、雅虎、甲骨文等IT巨头联手支持Open Ajax计划。IBM、Google、雅虎、甲骨文和BEA系统等许多高科技公司宣布共同支持一个开源软件计划,旨在推广一种名为“Ajax”的新兴的Web开发技术,有了这些IT大享们的加入,解决上述七个问题应该指日可待。