ASP.NET Atlas 为AJAX网站提供支持(1)(2)
Atlas 体系结构
首先要注意的是图 1 中所示的 Atlas 体系结构跨越了客户端和服务器。虽然 ASP.NET 2.0 中添加了一些附加的客户端功能,但程度不如 Atlas。在体系结构图右侧,请注意 Atlas 服务器功能是构建在 ASP.NET 2.0 之上并对其功能进行了扩展。Atlas 包括一组新的服务器控件以及新增功能,旨在从浏览器访问基于服务器的数据和服务。
在左侧您将看到全面的客户端脚本库,您可以在编写以客户端为中心的 JavaScript 的过程中,独立于服务器功能而使用该库。Atlas 新功能大量使用基于客户端这一特性来支持通过改进的客户端-服务器交互来开发更丰富的应用程序。
在图 4 中您可以看到 Web 应用程序中的典型客户端-服务器交互。首先,通过浏览器请求页面,然后用户与其交互。当用户的某些操作需要从服务器获取数据时,将发生完整的页面刷新,根据用户输入更新页的部分。遗憾的是,此行为不允许用户继续与页面交互。而用户在使用 Web 应用程序时必须不断暂停。
图 4 典型客户端-服务器交互
图 5 显示使用 Atlas 的客户端-服务器交互不需要完整的页面刷新。而是首先初始检索 HTML,随后调用服务器获取 XML、JavaScript Object Notation (JSON)、或 HTML 代码段形式的更新数据,以增量方式更新页面。后台异步调用在调用 Web 服务或检索页面更改时,不会使用户察觉必须暂停。这些异步调用为后续服务器回发管理更新的视图状态信息,以便必须进行完整的页面刷新时,可将准确的页面状态传送到服务器。
图 5 Atlas 客户端-服务器交互返回目录
客户端脚本核心库
Atlas 客户端脚本库被作为多个不同的片段提供到浏览器。脚本核心包括底层,库的其余部分在底层的基础上构建。底层是浏览器的兼容层。Atlas 的一个关键功能就是它将运行在支持 AJAX 关键元素的流行浏览器上。在 CTP 版本中,此支持已包括 Mozilla Firefox、Apple Safari 和 Microsoft Internet Explorer®。浏览器兼容层是一个抽象层,通过它您可以放心编写脚本。而无需斟酌各浏览器实现之间的差异细节。通过它,当浏览器发展及发布新的版本时,还可以轻松扩展 Atlas 支持。发出请求的此类浏览器自动确定使用哪些浏览器特定的兼容层部分。更高级别的代码已写入抽象层中,因此您无需编写代码处理浏览器实现中的各种变化。
在兼容层之上是核心类型系统。此类型系统允许进行面向对象方式的 JavaScript 开发。它使运用 JavaScript 的开发人员能够创建命名空间并在其中添加类。它还模拟对象继承。它支持接口、委托和枚举,从而可以在开发服务器端代码(使用面向对象的编程语言,如 C#)与编写客户端 JavaScript 代码之间更轻松进行切换。
基类库层构建在类型系统之上,加上该层,就构成了整个客户端脚本库核心。此概念借自 .NET Framework,并提供了一些熟悉的类型。其中有一个 Event 对象,它在 JavaScript 中以自然方式支持事件的多播。还有一个 StringBuilder 对象。另外还支持对象序列化,其中包括对 JSON 和 XML 数据的支持。基类库还包括 WebRequest 和 WebResponse 类,它们提供对浏览器的 XMLHttpRequest 对象的抽象,这一点类似于 .NET Framework 中的 System.Net 命名空间。所示代码演示如何使用 Atlas 脚本核心在 JavaScript 中创建两个简单类型。首先创建的是 Movie 类型,它提供电影标题和流派属性,以及一个 toString 方法。然后通过 Drama 类型扩展 Movie 类型并重写 toString 方法。
Type.registerNamespace(‘AtlasSample’); AtlasSample.Movie = function(title, genre) { AtlasSample.Drama = function(title, year) { |