让AJAX为你我所用


对企业应用而言,异步JavaScript和XML的优点绝不仅仅在于为用户界面增添功能。

不难明白为什么异步JavaScript和XML(AJAX)让那么多的Web开发人员为之心驰神往。基于浏览器的用户界面头一回内容丰富、功能齐全,足以让人扔掉所谓的胖客户端桌面应用。

乍一看,AJAX 似乎最适合面向消费者的应用。Google Maps、雅虎的Flickr像片共享网站以及亚马逊网站的A9搜索引擎这些例子都有力地证明,AJAX可以为网站的用户界面增添一些亮色。不过对企业应用而言,很难看到AJAX如何提供足够明显的实际好处,才能够抵消采用一种新颖、复杂的开发方式所带来的风险。

但IT经理们应当慎重行事,不要还没做更深入的了解,就把AJAX给全盘否定掉。为消费者应用添加乐趣的这些技术同样也可以在企业市场发挥重要作用。而且正如少数几家公司已发现的那样,如果这个重要作用利用得当,可以让IT人员得益匪浅。

譬如说,Tupperware墨西哥公司试图效仿澳大利亚公司的同仁,实施一套网上订购和库存跟踪系统时,其IT队伍最先求助于使用AJAX。不过,这支队伍发现,他们缺乏资源来运行这个应用。

Liborio Longoria是Tupperware驻墨西哥负责销售办事处和工厂的技术经理,他说:“我们只有一条T1线和一台服务器。”情况更为糟糕的是,这条T1线需要同时为四五十个内部用户处理流量,另外还要为许多试图登录到该系统的分销商提供服务。

于是,当AJAX开发工具厂商JackBe的首席执行官Luis Derechin突然打来电话,告诉Longoria不妨试试AJAX后,这位备受困扰的技术经理当然愿意尝试一下。

AJAX鼓励开发人员把网页分成几部分独立的数据,这些数据可以独立于整个网页来进行更新,并且鼓励开发人员编写在浏览器里面而不是服务器上对数据进行操作的应用软件。毕竟,既然浏览器本身拥有足够强的处理功能来运行简单的任务,浏览器干嘛要请求服务器来完成这项工作?结果就是,大大减少了在网络上传送的数据和显示信息。

在开始使用JackBe工具后的几个月里,Longoria的队伍就开发成了一套系统,在一台服务器上就可以高效运行。Longoria说:“我们的顾客对我们的服务感到很开心,至少感到很满意。我们可以录入订单、开账单、收取账款、进行促销及跟踪库存——而且我们每周可以从每个分销商处得到200个订单,有时所有分销商同时使用系统,但系统的响应速度仍很快。”

使用AJAX减少网络流量的现象正在迅速普及,尤其是在顾客和客户并不总是能够通过宽带连接访问应用的地区。在过去的两年间,JackBe已经帮助十多家拉美公司部署及推广基于AJAX的应用。这些公司并非无名之辈,譬如墨西哥国家银行(Banamex)、墨西哥水泥公司(Cemex)以及拉美天空电视台(Sky Latin America)如今都在使用AJAX。

集两者之所长

除了提高网络运行效率外,AJAX的另一个优点就是:它让部署零占用空间(zero-footprint)的软件成为可能。IT人员可以在一个地方维护代码,通过Web部署到任何有需要用户的桌面系统上,用不着在办公室的每一个桌面系统上安装一份应用软件。同样,修正版和软件更新也可以自动分发给每个用户。

多年来,企业应用软件厂商一直在向顾客许诺这种美好前景,但传统的HTML和JavaScript界面存在一些局限,这使得基于Web的应用软件很难与桌面软件相竞争。所以,其中一些厂商正率先利用AJAX消除这两类软件之间的差距也就不足为奇了。

譬如,开发基于Linux的消息传送和日历功能产品的厂商Scalix就使用AJAX为其网上服务器管理工具和Web邮件界面添加类似桌面软件的特性。的确,名为Scalix Web Access的后者极其类似现代的桌面电子邮件应用软件如Outlook和Thunderbird,以至于用户很容易忘了自己其实在使用基于Web的应用软件。用户可以对收件箱里面的邮件重新排序、在预览窗口里面查阅邮件、浏览不同文件夹里面的邮件——这一切用不着像其他邮件界面譬如IBM Lotus公司的Domino WebMail或者微软的Outlook Web Access那样进行单调乏味的页面更新过程。

Scalix的首席技术官Andy Palay说:“AJAX集两者之所长。从用户角度来看,用不着面临从一种状态变换到另一种状态的巨大变化。而从管理员角度来看,它拥有这项神奇特性,即用不着为把软件安装到每台计算机上而操心。”

提供托管商业应用软件的厂商NetSuite的情况几乎如出一辙。该公司在创办时就认为,中小企业可以把内部开发CRM和ERP软件包的做法改为使用托管服务,从而节省费用。不过为了说服顾客放弃功能丰富的桌面应用,NetSuite提供的Web应用就要能够几乎以同样的运行速度完成所有的同样工作。

这时AJAX就有了用武之地。NetSuite把在仪表板上显示的不同数据集划分成了独立部分——顾客用仪表板来访问CRM数据库,从而得以添加类似桌面软件的特性,包括行内编辑和列表即时重新排序。如今仪表板就像是“我们开发的一种应用,而不是一个网站”。NetSuite负责产品管理的高级经理Mini Peiris说:“能够利用AJAX是件好事。仪表板对我们来说无疑是个竞争优势。”

正如JackBe帮助了Tupperware墨西哥公司那样,Scalix和NetSuite也都在使用AJAX,以减轻服务器负担和网络流量。对Scalix来说,这是一个卖点:如果顾客发现与竞争方案相比,AJAX可以提高网络运行效率、减轻服务器负担,可能更有兴趣购买该公司的产品。对NetSuite来说,AJAX是确保公司顺畅运作的一个利器,哪怕顾客在不断扩大业务。

譬如说,NetSuite的用户可以对所需的所有列表重新排序,而不会给公司的服务器带来影响,也不会占用大量带宽,因为这项功能完全在浏览器里面处理。同样,当数据点改变时——譬如当销售人员在NetSuite仪表板上编辑某顾客的电话号码时,该应用软件只要把号码发送到服务器,就可以检索更新后的列表。实际上,利用NetSuite架构,该应用软件甚至没必要检索全部列表,因为就在用户滚动查询时,更新后部分已经动态载入。

 AJAX开发人员的工具包
 产品  描述  价格
 Backbase 3.0标准版  JavaScript库利用为便于AJAX开发的自己的Backbase扩展标记语言(BXML)取代JavaScript和HTML代码。  每个CPU 5760美元
 JackBe NQ Suite  集成开发环境(IDE)和一组JavaScript库用于不必从头开始,就可以开发跨平台AJAX应用软件。  起价5万美元
 微软AtlasVisual Studio   2005早期试用版包括用于开发跨浏览器AJAX界面的ASP .Net扩展件。  未定
 Ruby on Rails  该框架利用Ruby编程语言用于开发Web应用软件,有几项功能可用于加快AJAX开发。  开放源代码
 Sun Java Studio Creator 2  早期试用版的Java IDE包括一些AJAX组件,可以添加到应用软件上。  预计每个客户99美元
 Tibco General Interface 3.0  IDE提供了逐步调试、内存管理及用于开发AJAX应用软件的其他工具。  起价25000美元
 注:开发AJAX应用软件可能具有挑战性,但开发人员不必独自开发。越来越多的厂商提供简化开发复杂的Web应用软件的工具。


Peiris说:“AJAX的真正价值在于,为我们的最终用户及我们的服务器优化性能。你确实希望获得互动的体验,同时你又希望尽可能实现高性能,不会给服务器带来沉重负担。”

工具和要诀

对那些愿意尝试AJAX的人来说,现在有许多开发工具可以使用。到目前为止,Backbase、JackBe NQ Suite和Tibco General Interface是这个领域最先进的商业产品——不过每款产品价格不菲(参阅表格“AJAX开发人员的工具包”)。

不甘落后的微软和Sun都已经各自发布了AJAX开发工具的早期试用版。而Ruby on Rails开发框架是另一个成熟的工具,它为许多开发人员提供了另一种吸引力:完全采用开放源代码。

无论用户使用什么工具,都要记住这一点:开发类似桌面软件的应用软件将面临Web开发人员通常不会遇到的设计上的难题。譬如说,用户已经习惯于使用“后退”键返回到网页的前一个状态。不过对使用AJAX的网站而言,“后退”键可能会突然之间卸载整个应用软件。有些用户可能要费点功夫才能适应,而适应过程有多难,就要看应用软件的性质以及使用群体。

Scalix的Palay说,他们正是由于这个原因才禁用了浏览器的一些按键。他说:“我们是把Scalix Web Access和(管理)控制台作为桌面应用软件来提供的。用户在运行它们时,出现的窗口并没有浏览器控件。”

Peiris说,NetSuite的开发人员做了类似考虑。他们后来选用了这种设计:把应用软件的几个主要部分划分在几个“页面”上,那样用户就可以使用“后退”键在几个页面之间跳转。Peiris 解释道:“用户仍可以娴熟地使用‘后退’键。如果在使用客户线索仪表板,就可以点击‘后退’键跳到销售仪表板。”

Jesse James Garrett是咨询公司Adaptive Path的用户体验战略部门主管,正是他首先提出了AJAX这个缩略词。他说,只要新界面设计巧妙,用户会学会适应新界面。他说:“现在与五年前相比,Web上的互动方式大不一样。互动方式会一年比一年完善,用户已经很好地适应了这一点。”

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3