ajax|微软如果你曾参与过网络开发,那么对你来说,利用远程脚本调用能力、通过AJAX(Asynchronous JavaScript + XML)来开发应用软件的最新趋势也就不足为奇了。毕竟,这一技术多年前就已出现,只是与浏览器不兼容罢了。微软一直宣称ActiveX为解决方案,但随着AJAX技术的不断升温,这一情况已经改变。现在让我们深入探究AJAX革命,以及微软的参与和方案。
AJAX是什么?
定义AJAX可不象指向W3C网页那样简单,因为它是几种技术的组合。它包括如下技术:
* XHTML 和 CSS 的标准表示;
* 使用文档对象模型DOM(Document Object Model)实现动态显示及用户交互;
* 使用 XML 、XSLT和XMLHttpRequest进行数据交换及操作;
* 使用 JavaScript 将所有技术绑定在一起。
AJAX与传统网络开发的最大不同在于采用了远程脚本调用技术。远程调用技术允许用户方的JavaScript语言向服务器发送数据请求,而不用刷新网页。这一任务是通过JavaScript语言与XMLHttpRequest对象来实现的。远程脚本调用将一部分处理过程转移到客户(浏览器),这大大减少了向网络服务器的呼求数目。
微软首次将XMLHttpRequest对象作为一个ActiveX对象应用在Windows IE5中。与这个ActiveX组件一同首次开发的还有Outlook Web Access。研发Mozilla计划的工程师推出了Mozilla 1.0(及Netscape 7)的兼容本地版,苹果公司也在他们的Safari 1.2中增加了这一支持。在一份提议的W3C标准中也包含了类似的功能。与此同时,XMLHttpRequest对象实际上已成为技术标准。
“中间人”
传统的网络应用软件首先向HTTP服务器触发一个用户行为或请求的呼求。反过来,服务器执行某些任务,再向发出请求的用户返回一个HTML页面。这是一种不连贯的用户体验,服务器在处理请求的时候,用户多数时间处于等待的状态。
AJAX则不同。它通过在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理—等待—处理—等待缺点。用户的浏览器在执行任务时即装载了AJAX引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。AJAX引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。
AJAX不断升温
AJAX正受到大型公司Google及Amazon的关注。Google已将AJAX广泛应用于其开发的Gmail、Google Suggest和Google Maps等网络应用软件中。(确实,在最近所有开发或改进的主要产品中,Google在AJAX方面投入了大量资金。)同样,Amazon也推出了应用AJAX技术的A9搜索引擎。每天都有许多类似的例子涌现。
微软的AJAX
当然,微软也在着手开发更为完善的AJAX。它即将推出代号为Atlas的AJAX工具。Atlas的功能超越了AJAX本身,包括整合Visual Studio的调试功能。另外,新的ASP.NET控件将使客户端控件与服务器端代码的捆绑更为简便。Atlas客户脚本框架(Atlas Clent Script Framework)也使与网页及相关项目的交互更为便利。但Visual Studio 2005中并不包含此项功能。
微软最近宣布Atlas客户脚本框架将包含如下内容(详细资料请访问Atlas计划网站):
* 一个可扩展的核心框架,它添加了JavaScript功能:如生命同时期管理、继承管理、多点传送处理器和界面管理。
* 一个常见功能的基本类库,有丰富的字符串处理、计时器和运行任务。
* 为HTML附加动态行为的用户界面框架。
* 一组用来简化服务器连通和网络访问的网络堆栈。
* 一组丰富的用户界面开发控件,如:自动完成的文本框、动画和拖放。
* 处理浏览器脚本行为差异的浏览器兼容层面。
上述内容只是一个初步的框架。在确切的产品发布之前,这些内容很可能会有所改变。如果你等不及微软的产品,可以先试用一下免费的微软.NET框架Ajax.NET库。
AJAX的缺点
AJAX要求用户的浏览器支持JavaScript语言。尽管这并不是主要的问题,不过也要加以考虑。同样,这些应用软件必须经过严格的测试来适应不同的浏览器及平台。但是,这种情形只对基于浏览器的应用软件而言,并不包括目标浏览器可被控制的局域网在内。
用户对AJAX的抱怨主要集中在浏览器后退功能的失效上,因为在AJAX下,页面的动态更新并不被浏览器认为是进入另一个网页。不过,用IFRAME的一个常用方法就可以解决该问题。
AJAX面对的另一个批评让我觉得很有趣,有人认为AJAX不过是为了推销旧技术而引入的新名词而已。这也许是对的,但至少它所包含的技术是成熟且经过测试的。
旧瓶装新酒
AJAX技术在网络开发界并不新奇,但总的来说,它对所有主流浏览器的广泛支持使其更易于为网络开发界所接受并加以应用。AJAX所应用的技术成熟而稳定。利用它你能够开发出丰富的应用软件,从而减少服务器的响应时间,这样用户的等待时间也相应减少。
AJAX与微软的新方案
80酷酷网 80kuku.com