分享

电脑报AJAX,Web2.0的“特洛伊战士”

 accesine 2005-11-02
 
(2005-11-02 09:35:24)

       

        高博,微软中国技术支持和客户服务中心高级工程师。从小喜欢计算机程序设计和应用程序深度探索,对技术有独到的见解,发表技术文章约60万字。

        本期董师傅邀请到高博作客茶坊,谈谈Web2.0时代的一项新的技术应用——AJAX。

        AJAX,中文译作艾亚斯,《荷马史诗》里著名的特洛伊战争中的古希腊战斗英雄,以骁勇善战之名传世。如今,一种称为AJAX的新的网页交互技术仿佛一夜之间在Web 2.0的战场上攻城夺地,占尽风头。AJAX战斗力何在?让我们来近距离地看看这位今天的Web2.0名将。

        兵器  JavaScript+XML

        AJAX的全称叫做异步JavaScript及XML技术(Asynchronous JavaScript And XML), 此技术最常见的应用就是大名鼎鼎的GMail。初上手时并没有感觉GMail和其他的WebMail有什么不同,但只要点击一个链接,差异就出来了:邮件内容或者选项菜单仿佛是一瞬间弹出来的,这和其他的WebMail需要等好一阵子看着整个页面被刷新的感觉完全不一样。

        应用了AJAX技术的Web页面和传统的动态页面根本不同。传统的动态页面的工作原理是通过HTTP协议接受几个从前一页面传递而来的参数,而后根据这些参数进行一些计算或读取更多的数据,然后把计算结果或读取的数据写到一个结果页面里去,并返回给浏览器。

        而AJAX的工作过程则是使用JavaScript发出一个XMLHTTPRequest,这个过程传送的数据没有什么不同,但是深刻的变化就发生在返回的内容上。这里,返回的内容已经从整个页面变成了仅仅是一些计算结果或数据。当它们被返回到本地以后,由一个AJAX引擎使用XSLT技术将它们按照预定的文档对象模型转化成最终的Web页面的更新内容——注意,不是用一个页面代替另一个页面,而是对当前页面的显示更新。

        也就是说,传统的动态页面要刷新整个页面,要等服务器把整个页面发送回来。而采用了AJAX技术的网页只要服务器发回来几个数据,在本地用JavaScript刷新页面即可,不需要用户等待从服务器端返回的大量页面内容,又能迅速把结果通过本地的页面操作显示给用户。

        这正是XML技术的神奇之处,它能够做一个在服务器和客户端之间进行小型数据传递的“搬运工”。在草根族大规模云集的Web2.0时代,数据通信量会在很大程度上决定服务规模,因此,应用了XML技术的AJAX成为Web2.0时代的核心武器,也就毫不奇怪了。

        战场  交互式应用

        AJAX的静态页面刷新的思路有广泛的应用,这在需要较快反应速度或对页面变化敏感的场合都极为有用。一个比较常见的应用是使用AJAX技术来完成页面编辑的即时显示和预览。这个应用多见于Blog里的评论或论坛中的板帖书写。MSN Spaces就应用了AJAX技术以做到用户一提交完评论,马上就可以显示,而不用把整个页面刷新一遍才能看到。

        Google Groups也使用了AJAX技术,所以用户一发完帖立刻就可以看到了。还有一个比较常见的应用就是需要经常刷新的页面,特别是比较大的页面,如在线人数列表、股票代码滚动显示等,采用了AJAX技术后,就可以以更高的频率刷新,而且不会引起整个页面的操作中断了。GMail的当前容量指示,就是AJAX的一个应用。

        其实,AJAX有更广泛的应用前景,因为它的实质是把一大部分计算从服务器端转移到客户端。这样的新思路甚至可以说是WebOS的基础,远程服务器负责的是指令的回传,而实际的系统调用操作则在本地利用丰富的计算资源完成。

        在Web 2.0时代,一个最大的特点就是“全民织网”,也就是说会出现极为密集的服务器请求。把计算任务移至本地,最大程度地减少服务器负担,把服务器的计算资源用在刀刃上,就成了在Web2.0时代成败的关键。一个简单的例子就是仅仅是把AJAX和Flash技术结合一下就产生了一个巨大的快速地图的应用Google Maps,所以说AJAX的应用可以说还只是方兴未艾。

        走势  死穴和生门

        AJAX技术也存在一些问题, 首先它对浏览器比较挑剔,必须是完全支持JavaScript 1.2标准的浏览器才能够正常使用。其次,它需要把JavaScript功能打开,这在一些安全性要求比较高的场合是不能接受的。

        对AJAX技术的另一个主要批评来自它对“回退”功能的支持不够好。因为从原理上讲,AJAX的一切页面更新都是JavaScript完成的,都是本地操作,没有新页面代替旧页面,当然也就谈不上什么回退——因为在浏览器的视角里,一直都是同一个页面。使用GMail的用户都有这样的苦恼吧:查看一封邮件以后,想再回到前一封信,就不可能了。 这是一个比较令人头疼的问题。

        另外,AJAX技术对于错误也显得比较敏感,由于服务器异常响应而使得数据不能完备的话,用户会感觉浏览器当机了。

        尽管如此,由于用户体验的巨大改进,AJAX技术还是获得了很广泛的应用。常见的应用和主流的浏览器如Internet Explorer、FireFox和Safari等都已经正式支持了这一技术。相信随着XML技术的进一步普及,AJAX技术会给Web世界带来更多的精彩。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多