【IT168 专稿】关于J2EE的开发框架可谓是百花齐放,从JSF、Tapestry到Struts、WebWork,又有从Spring WebFlow到JSP/JSTL/Velocity等等。而且几乎每天都有新框架诞生。然而,面对Ajax或是其它类似Ajax客户端技术的兴起,是不是会意味着传统基于HTML/HTTP的Web框架将会前途渺茫?
一、 传统Web遭遇AJAX,是融合还是消亡
传统的Web框架主要负责处理HTTP请求及生成HTML页面,在服务器保证客户端的正常显示,主要通过处理表单,绑定业务数据对象等并返回给客户端的HTML页面。
而Ajax,通过采用模块引擎、XPath/XSLT引擎、SOAP协议及XFroms等技术来实现,充分的在客户端发挥不可替代的作用。因而,开发人员可以尽量将JavaScript从HTML页面里分离出来,尽量采用CSS来减少JavaScript脚本语言在客户端的大量使用。从而基于Ruby on Rails框架的JavaScript版本,可以稳定的应用运行于浏览器上。
未来的Web应用程序会不会是基于静态的HTML和使用Ajax采用XML提供的web services?如果是的话,那么我们还需要基于HTTP/HTML的传统Web框架吗?或是完全采用Ajax来取代Web框架以实现查看、编辑等功能?
就作者的个人经验而言,如果非免费的话,可以肯定的是Ajax将成为Web框架收费的一个新增点。但是作者对Ajax将取代Web框架的结论表示怀疑的态度。有太多的公司不愿意开发一个仅仅基于JavaScript的UI(用户界面),Google也不例外,因为,当浏览器的JavaScript功能被禁用时,GMail还有一个非JavaScript的版本可以正常运行。
然而使用了Ajax,以前使用Web框架所存在问题是否依然存在呢?同时,哪一个Ajax框架最适合?DWR、Scriptaculous、Prototype?还是AjaxTags、AjaxAnyWhere、Rico?更或者是Dojo、JSON-RPC?但当他们中的某一个框架被Apache组织所收购,那会不会意味着它将成为又一个Struts呢?
这也就是说,作者更加倾向于将Ajax与传统Web框架两者进行无缝的集成使用。Ajax的强项与优势在于它在客户端”view”方面的良好表现,同时可以对客户端的请求按需进行业务数据的请求。而Web框架在这个方面是弱项,但在其它方面如服务器则是强项。在特大型项目中,如果不采用基于MVC原则的Web框架来形成程序的结构,则Ajax将会显得力不从心。
二、AJAX的优势锐不可当,必将缔造新的Web神话
Ajax的成功之处还在于,它服务于客户端,充分的体现了RIC(Rich Internet Client)的思想,挖掘客户端的资源。同时对服务器“XML web service”的实现技术无任何要求,可以是Phthon、Ruby、Java或是.Net,不管采用哪种技术,Ajax都可以将它们无缝的集成,并按用户的不同需求进行数据或业务逻辑上的请求。
Ajax技术的发展与应用,无疑将会使Web2.0所提倡的用户操作体验更加具体化。Ajax技术将成为一种方向,尽管也有它的应用局限性及技术缺点,例如开发人员并不希望将程序的业务处理状况或业务逻辑等部署在客户端,因为这样做太不安全且不便于权限管理。但从方便用户的角度来看,Web框架的模型建立将是至关紧要的。因此,作者所期待的是internet程序的某种程序模型,它将internet上的各种应用程序无缝的集成,可以将各种不同语言(如php、ruby、java等)编写的程序整合至同一web应用程序中,而无需进行程序的重写或是折中。
对于Ajax与传统Web框架的结合,事件驱动模型将是一个十分意义的参考模型。在此模型中,程序开发人员将不需知道Ajax或是JavaScript,而是将它们看成是随时可以使用的组件,并且在服务器可响应处理用户所引发的事件,服务器与浏览器之间的通信与数据交换在服务器完成,对开发者透明。如此一来,则提高了用户的操作速度,使客户端的操作更加的易用与丰富。于是,传统Web框架得到了重生,一种以Ajax为核心新的Web框架(不同于完全是服务器端的JSF等框架)诞生了,程序的开发将不再是如何写程序,而是如何的利用现有的组件进行组合,形成应用程序。而且随着技术进一步发展的话,是不是有可能将传统的Web框架如JSF/Struts等发展成如同VB等语言一样的Ajax框架呢?
就目前而言,我们更多的是使用Ajax来提供基于HTML/DHTML/JavaScript的丰富快速的客户端操作。但随着技术的进步,Ajax的兴起,必定会促使过时而低效的传统web程序开发框架尽早的退出历史舞台,但它并不能替代Web框架,而是做为Web框架中客户端与服务器端通信的纽带,充分的利用客户端的资源。作者坚信,以Ajax为中心的或是以基于Ajax的Web框架定将成为时代的主流框架。