• AJAX与微软的新方案
  • 【时间】2012-01-16    【来源】湖北致信信息技术有限公司
  • 如果你曾参与过网络开发,那么对你来说,利用远程脚本调用能力、通过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语言。尽管这并不是主要的问题,不过也要加以考虑。同样,这些应用软件必须经过严格的测试来适应不同的浏览器及平台。