从年初到现在,AJAX之风预演愈烈,尤其是在国内,大多是一片叫好的声音。目前好像很多人都在搞基于AJAX的框架,国外也有一些都已经发布。对于这种一直都存在技术,Google、微软一造势,大家的热度好像有点过了头。看来现在咱们这些程序员真的都是些追星族啊!
难到AJAX真的就那么优秀,值得提升到框架的高度,让系统UI端围着它转?单纯从AJAX本身来说,其最主要不过就是解决在网页上一个无刷新获取数据的问题,再加上减少了数据的传输量,将数据解析的工作推到了客户端,的确能解决很多传统的问题,很方便的实现一些动态效果。然而,要围绕AJAX建立一个框架,通过AJAX完成UI端绝大部分内容的展现,我个人认为却是欠妥。现在很多人在网站上说,AJAX多多成熟,能达到多好多好的效果,但是问题是,AJAX技术本身成熟,但AJAX框架却是十分的不成熟。
笔者前一段一直在参与一个国外知名大公司的一个产品的开发,这套系统好几年前就开始做了,系统的UI很多是基于AJAX的,对AJAX的应用可谓登峰造极(当然,那个时候肯定还没有AJAX这个名词),其界面的可操作行几乎可与桌面系统媲美。这系统有一个强大的AJAX框架,光是相关基础JS文件就是数十个,整个UI基于Javascript事件驱动,数据由XMLHttp获取。整个方案看上去的确很棒,或许正是现在很多人想要实现的。但实际情况是如何呢?效果是实现了,程序开发和测试、维护的效率则是大大的下降了。开发就不说了,前期投入巨大,系统复杂性剧增,程序也只能用IE访问。测试的时候这边 AJAX的javascript的bug满天飞,那边调试这种错误极不方便,没有好的JS的调试器,更看不到实际输出的html代码。维护那就糟糕,加个新功能,JSP文件、标签、JS、后台类全要过一遍。或许正是这些不易克服的问题,我看到在最近开发的配套软件里,就基本没有用什么AJAX了。
大公司的尝试和经验,或许能给大家一些启示。说到底,所有的技术都是有利有弊的,AJAX也是一样。我个人认为AJAX 最适合的就是Google Map这种网上地图系统,展现方案相对比较单一,又非常的需要无刷新的获取数据。对于那些业务比较多,展现风格非常多样的业务系统,万万不可脑子一热,真的要用什么AJAX框架,到头了只回为了一点无谓的效果砸了自己的脚。
最后强调一下,AJAX是个好东西,在项目里用它来实现一些辅助效果(最传统的比如用户输入数据时实时的验证,给出相关提示)即快捷又神奇,但过度使用很容易让自己系统陷入麻烦之中,一定要慎重!此外目前公布出来的所谓的那些AJAX框架大多都是实现一个Form或者一部分页面的无刷新取数,根本谈不上什么Web框架,目前没必要抱太大的希望。最近down了几个开源的ajax的东西看了看,觉得对一般开发人员来说,ajaxtags (http://sourceforge.net/projects/ajaxtags/) 是个不错的东东,简单易懂,可以仿照它的标签做一些自己的实现,值得看一看。
声明:本博客中所有文章均为版主原创,转载请保留作者信息,并请注明出处。