冷静对待流行技术风潮:忽悠一下Ajax
作者:EasyJF开源团队(www.easyjf.com) 大峡
前几天与瞌睡虫.cn在MSN上闲聊,他说最近看了一本吵得有点热的书,是关于ajax技术的,问他写得怎么样,他说被骗了,问为什么,他说里面全是讲的全是CSS、Javascript、XML,都是以前我们的项目中用到的,笔者说确实是如此,然后他就开始郁闷ing。
Ajax(Asynchronous JavaScript and XML),中文翻译即异步加哇十块扑特与二克十二蒙(:-0),这个词好像是2005流行起来的吧,借用某位大虾的一句话:“新瓶装老酒”。不过这酒不但可口,还易醉人。这不,您看各大大小小的网站都推出了Ajax专题、Ajax开发指南,各大牛、小牛纷纷发表文章介绍评论Ajax,各大大小小专家、学者、书商一起接二连三出了一本又一本的有关ajax图书(书也很好出啊,把以前有关dhtml、css、javascript、xm、xmllhttp等技术资料一Copy,再来一个Encapsulation即封装,几百上千页的书就出来了),让我们不得不感叹学术界真是繁荣昌盛啊。
有些热心的大师甚至预测,ajax将改变并有可能代替传统Web的开发模式。让很多刚学JSP、Struts的Newbie(新手)甚至怀疑自己是否投错了胎、选错了路。
一直想凑热闹写一些关于Ajax的话题,但一直不好动手,这里忽悠几句。搞B/S开发,不需要花太多的学这些,重点还是要把b/s的基本知识学扎实,客户端的理论包括dhtml、css、javascript、xml等,J2EE服务器端还是万变不离其宗的设计模式、UML建模、Servlet、JDBC或ORM系统、XML、EJB及一些框架、工具等。
Ajax更多的应用于胖客户端,在大多数的B/S项目中,只有在很少的地方需要用到,它还算不上一门技术,只是一个小工具,对于一个有经验的Web开发人员(熟悉dhtml、javascript及xml)来说,只需要看看MSDN中有关XmlHttp的Api文档,半小时就能会Ajax。
Ajax只有在适当的地方才会用到,也即需要在后台进行大量数据处理(充当消息通知机制),需要频繁的定时或不定时从服务器中读取数据的时候。
比如我们常接触电子邮件系统中,因为电子邮件系统一般都由电子邮件服务器及客户端组成,当用户通过web登录电子邮件系统时,web服务器需要从邮件服务器中收取邮件内容,这个邮件收取的过程有时会比较长,而且在用户阅读邮件的过程中不定时的还有有新邮件出现。在这些系统中使用Ajax技术,则可以在用户登录的时候,不用收完全部邮件信息就返回客户端,同时服务器端不断的从邮件服务器中检测并搜取邮件,而Ajax客户端启动一个定时刷新不断的从服务器终读取信息,一旦发现有新的邮件就可以直接反映在用户的Web界面中。
若不使用Ajax,则要读取服务器端的新信息需要刷新一次页面,可以通过设一些IFrame等方式来处理,但由于Ajax传回来的是结构化的xml数据信息,因此可以很好的通过javascritp进行数据处理。
在聊天室系统中经常用到,道理同上并且更容易理解!
另外一个例子是我们经常见到的树状结构,当树总节点少的时候,可以一次性读出来然后客户端用javascript处理,但当总节点有成千上万过的时候,这时就不能一次性读出来,因为客户端是处理不过来的,就需要用到ajax技术,开始只读最上层的节点,当用户选某一节点的时候,到服务器端读取选中节点的子节点。
另外,Ajax在网页模式对话框中也常用到(即window.showModalDialog方法弹出新页面),因为模式对话框中若需要往服务器提交数据时,是不能直接用form提交的,因此通过Ajax技术提交更方便。
在全国人民及全世界人民的努力下,现在已经出了很多有关ajax的框架,使用ajax技术也更加容易了。Ajax不神奇、技术上没有任何新东西,更多属于设计范凑,总的来说还算不上什么东西。说白了,其重点是xmlhttp组件的应用,其它的内容就是Web开发中经常所需的柴米油盐(即dhtml、javascript、xml等了),巧媳妇手艺再好也必需要有柴米油盐才能下厨房。因此,对于刚接触Web开发的朋友来说,应该花有限的精力及时间去学什么、做什么,自己看着办吧。呵呵!