1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

[名词解析]AJAX,Web2.0的“特洛伊战士”

本帖由 不学无术2005-11-04 发布。版面名称:前端开发

  1. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    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世界带来更多的精彩。

    文章来源:http://www.cpcw.com/disp.php?aid=4473&cid=11
     
  2. fyfei

    fyfei New Member

    注册:
    2005-10-07
    帖子:
    9,067
    赞:
    46
    我说过,不学是值得欣赏的。