分享

5D多媒体第5版-- 5D教程

 xiaoqdu 2008-11-20

AJAX开发工具Atlas:实现机制浅析(一)

--==页一==--

page 1 of 5下一页
来源:Yesky | 时间:2006-10-28 |  人气:
文章关键字:ASP.Net,AJAX,Atlas

“Atlas” 是ASP.NET下的一个新的Web技术开发包,它集成了一套非常大的客户端脚本库使得与功能丰富的、基于服务器开发平台的ASP.NET2.0结合在一 起,“Atlas”能让你开发的Web应用能够通过直接调用Web服务器来更新一个Web页面的数据――不需要在页面往返传送(也就是不需要多次刷新页 面)。使用“Atlas”,你能最大地利用ASP.NET和服务器端代码在浏览器中来做许多工作,使得有更加丰富的用户体验。

与 .NET 和 Java 平台下其它 AJAX 框架相比,Altas 最大的亮点就在于与 ASP.NET 现有机制的无缝融合。通过 VS.NET 集成开发环境,使用者可以在对 js 和 AJAX 不甚了解的情况下,以非常自然的方式使用到最先进的技术。此外直接在 js 一级提供 WebService 的调用支持,也大大降低了对 ws 技术的使用门槛。而 ASP.NET 中一直引以为豪的数据绑定等技术,也可以在 Altas 中无缝得到支持,让现有投资能够最大限度得到保护。从这些意义上来说,虽然 Altas 在 AJAX 理念上没有太多突破,但不失为一个强大且实用的 AJAX 框架,非常符合 MS 在技术运用上的一贯原则。

  整体结构

  从整体结构上来看,Altas 的核心在于 <atlas:ScriptManager .../> 这个标签,所有支持 Altas 的页面都必须有且只有一个此标签,以引入 Altas 的基础架构支持。在此基础上,通过 <altas:UpdatePanel .../> 标签定义需要异步更新的范围,避免传统 Post Back 模式下的全页面刷新。而需要支持 AJAX 模式获取数据的控件,则可以通过 js 脚本和 xml 脚本两种方式定义,并由 Altas 框架进行动态 patch 以实现标准 web 控件的 AJAX 支持。此外就是 WebService 调用和数据绑定的支持机制,也是利用 Altas 框架的基础架构实现的。

  ScriptManager

  首先,ScriptManager 是一个容器,用户可以在 ScriptManager 标签下定义期望引用的其它 js 库,以及希望通过 js 直接调用的 WebService 服务。

  例如在如下的定义中,ScriptManager 控件将保存对两个客户端 js 库和 ComplexService 服务的引用,并在页面 Render 的时候写入适当的支持代码。我们可以通过 ScriptManager.Scripts 和 ScriptManager.Services 属性访问类似定义。

以下内容为程序代码:
<atlas:ScriptManager runat="server" ID="UpdatePanel2" 
  EnableScriptComponents="True" EnablePartialRendering="True">
  <Scripts>
    <atlas:ScriptReference ScriptName="AtlasUIMap" />
    <atlas:ScriptReference Path="~/MyScripts/MyScript.js" />
  </Scripts>
  <Services>
    <atlas:ServiceReference Path="ComplexService.asmx" />
  </Services>
</atlas:ScriptManager>


  其中 ScriptReference 非常简单,支持通过 ScriptName 或 Path 属性指定脚本。

  ScriptName 指定 Altas 内建的库名称,在 FrameworkScript 类型中有具体定义。这个属性在有的文档和例子中,也直接称为 Name 属性,但最新的 Altas M1 中已改为 ScriptName。这个脚本类型将被通过 ScriptManager.ConvertFrameworkScriptToFileName 函数转换为对应的 js 文件名。

以下内容为程序代码:
public enum FrameworkScript
{
      Custom,
      AtlasUIDragDrop, // "AtlasUIDragDrop.js";
      AtlasUIGlitz, // "AtlasUIGlitz.js";
      AtlasUIMap // "AtlasUIMap.js";
}

 
  如果直接使用 Path 则可以指定任意的用户自定义库。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多