您的位置: 网界网 > 周报全文 > 正文

[周报全文]AJAX:技术神话背后

2006年06月22日 15:56:39 | 作者:佚名 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:在AJAX优异的性能表现之外,还蕴含着应用的复杂性,以及不当使用可能导致的网络运营风险。对于这个同时带来问题和机会的技术,企业需要正确地解读。

标签
AJAX

        在AJAX优异的性能表现之外,还蕴含着应用的复杂性,以及不当使用可能导致的网络运营风险。对于这个同时带来问题和机会的技术,企业需要正确地解读。

        Google Maps和Flickr等应用的流行,让Web开发人员疯狂迷恋这些丰富、互动的程序开发。但是,业界观察家警告说,这些被称为AJAX(基于XML的异步JavaScript)的脚本组件可能比看上去要更加复杂,并且在网络中的表现也不够友善。

        AJAX指的是包括JavaScript、XML、动态HTML和异步XML/HTTP调用在内的一整套技术。Adaptive Path咨询公司的Jesse James Garrett在2005年2月份的一篇文章中发明了“AJAX”一词,来描述一类让Google Maps和Google Suggest等应用更加灵巧且反应迅速的本地浏览器工具与技术。

        Google Maps将XML数据流发送给浏览器,以便让用户可以在全球地图上寻找某个地点,然后点击放大地图和卫星图像,其流畅的程度就像是调用桌面应用程序,而非必须持续从远程服务器下载内容的Web应用。Google Suggest应用使用JavaScript提供搜索建议,并在用户开始在搜索框内输入查询语句时量化搜索结果。

        Google并不是第一家利用此类技术的公司,但却是大规模、并以一种非常公共的方式采用这类技术的公司。Amazon的A9.com搜索引擎和照片共享网站Flickr也采用AJAX模式的程序开发。

企业的角色

        目前,企业开始考虑AJAX是否可以在非消费类的应用环境中发挥作用。有专家说,企业中确有AJAX的用武之地,但IT人员必须谨慎地评估和实现此类技术。

        Gartner公司的研究副总裁Joe Skorupa说,第一步就是要组建一支跨部门的团队。企业必须将Web开发人员与掌握有关安全、数据库、服务器管理、网络和桌面管理技术的IT人员组合在一起。

        在设计AJAX应用时,开发人员必须从一开始就考虑一次可能建立的TCP连接的数量,以及连续的内容刷新对服务器负载的影响。他说,开发足够的原型产品和进行充分的测试是必需的。“如果你这样做,就可以做出一些让你的用户感到满意的好东西。”

        事实上,AJAX与其说是一项技术,倒不如说是一种开发比典型HTML网页更具响应能力应用的方法。而这其中,最具吸引力的一个特性就是,AJAX应用不需要在客户端安装插件或其他代码。

        AJAX应用没有采用常用的网页提交/网页刷新模型,而是通过只刷新屏幕中变化的部分来保持内容处于最新状态。此外,AJAX应用还利用用户的PC和Web浏览器的力量来执行很多传统上由服务器完成的任务。

        企业正在寻求将AJAX整合到新的和已有的软件中的途径。例如,一家公司可以通过添加账户收支或仓库水平等数据的实时更新来改进Web应用。开发人员可以将这个应用设计为每隔15秒自动查询服务器,或每次当用户的鼠标划过这个数据域时查询更新,而不是用户必须请求这个信息。

        但是,向已有的Web应用添加AJAX元素并不总是那么容易。这取决于应用逻辑与表示层结合的紧密程度。如果它们泾渭分明,开发人员可能只需要修改很小一部分应用代码。

        开发AJAX工具包和基础设施平台的JackBe公司的CEO、创始人Luis Derechin说:“我们遇到过它们的分离程度让添加AJAX更容易完成的例子。甚至C/S(客户机/服务器)应用都可以在一个多层基础设施下开发。而另外的一些时候,它们的嵌入程度却达到了盘根错节的地步。”

C/S因素

        引发企业对AJAX兴趣的另一个因素是将C/S应用迁移到Web上的可能性。Oracle公司应用开发工具首席设计师Ted Farrell说,企业可以在仿真C/S应用特性和外观的同时,获得Web应用管理方面的收益。

        Farrell说:“人们已经开始怀念旧的桌面客户机,因为在这些客户机上的应用是真正交互和动态的。因此,人们花更大的力气来保持Web的单一分发模型,使企业不必向每个人的桌面系统分发软件,但却仍然可以享受与桌面端相关的互动性。”

        AJAX另一个关键的特性是,与传统的Web应用相比,它们的确减少了网络负载的压力。IBM的CTO David Boloker说,理论上讲,如果程序编得漂亮的话(+微信关注网络世界),与服务器的通信应当更少,信息的处理更多地是在客户端进行的。他说:“如果你发送XML,然后客户端处理这个XML,只要你不连续来回传送零星的XML,服务器就将获得更多的空闲处理能力。”

        Gartner的Skorupa同意这种观点。他说:“结构和编码都很好的AJAX应用可以改进响应性,因为你可以以增量方式更新屏幕,而不是从服务器上下载所有东西。”

        但是,Skorupa表示,Web开发人员利用AJAX所开发的一些让应用更具响应性的程序可能对网络性能产生负面影响。例如,如果某个屏幕上有10个嵌入链接的话,开发人员利用AJAX技术打开所有10个链接,并在用户请求信息前下载它们。他说:“只是为了防止万一需要而将它们下载下来,这可能给网络带来大量的额外负担。”

        现在人们普遍认为AJAX非常容易使用,因为它包含人们所熟悉的技术。但Skorupa提醒大家,想一想Google建立AJAX应用原型、测试、修改和部署这些应用所使用的资源。Google拥有业界非常优秀的程序员,而这种条件大多数企业并不具备。

        他说:“你必须假设很多企业程序编写得不够好。它将是目前应用的添加件,将由以前从没有做过这项工作、不懂这种编程模型的人来编写。”

        目前,很多公司正在小规模地试验AJAX,这的确是个摸索的好方式。但是,在公司战略性地考虑如何正确使用这类技术达成业务目标之前,它们不应指望通过向网站添加AJAX的Widget插件工具就能带来奇迹。Derechinsh风趣的形容这种做法是,“找来一辆老旧的福特汽车,涂上一层新油漆,然后指望它的性能会超过法拉利。”

ffff
[责任编辑:程永来 cheng_yonglai@cnw.com.cn]