“Atlas”是ASP.NET下的一個(gè)新的Web技術(shù)開(kāi)發(fā)包,它集成了一套非常大的客戶端腳本庫(kù)使得與功能豐富的、基于服務(wù)器開(kāi)發(fā)平臺(tái)的ASP.NET2.0結(jié)合在一起,“Atlas”能讓你開(kāi)發(fā)的Web應(yīng)用能夠通過(guò)直接調(diào)用Web服務(wù)器來(lái)更新一個(gè)Web頁(yè)面的數(shù)據(jù)――不需要在頁(yè)面往返傳送(也就是不需要多次刷新頁(yè)面)。使用“Atlas”,你能最大地利用ASP.NET和服務(wù)器端代碼在瀏覽器中來(lái)做許多工作,使得有更加豐富的用戶體驗(yàn)。
與 .NET和 Java 平臺(tái)下其它 AJAX 框架相比,Altas 最大的亮點(diǎn)就在于與 ASP.NET 現(xiàn)有機(jī)制的無(wú)縫融合。通過(guò) VS.NET集成開(kāi)發(fā)環(huán)境,使用者可以在對(duì) js 和 AJAX 不甚了解的情況下,以非常自然的方式使用到最先進(jìn)的技術(shù)。此外直接在 js 一級(jí)提供WebService 的調(diào)用支持,也大大降低了對(duì) ws 技術(shù)的使用門檻。而 ASP.NET 中一直引以為豪的數(shù)據(jù)綁定等技術(shù),也可以在Altas 中無(wú)縫得到支持,讓現(xiàn)有投資能夠最大限度得到保護(hù)。從這些意義上來(lái)說(shuō),雖然 Altas 在 AJAX理念上沒(méi)有太多突破,但不失為一個(gè)強(qiáng)大且實(shí)用的 AJAX 框架,非常符合 MS 在技術(shù)運(yùn)用上的一貫原則。整體結(jié)構(gòu)
從整體結(jié)構(gòu)上來(lái)看,Altas 的核心在于 <atlas:ScriptManager.../> 這個(gè)標(biāo)簽,所有支持 Altas 的頁(yè)面都必須有且只有一個(gè)此標(biāo)簽,以引入 Altas 的基礎(chǔ)架構(gòu)支持。在此基礎(chǔ)上,通過(guò)<altas:UpdatePanel .../> 標(biāo)簽定義需要異步更新的范圍,避免傳統(tǒng) Post Back模式下的全頁(yè)面刷新。而需要支持 AJAX 模式獲取數(shù)據(jù)的控件,則可以通過(guò) js 腳本和 xml 腳本兩種方式定義,并由 Altas框架進(jìn)行動(dòng)態(tài) patch 以實(shí)現(xiàn)標(biāo)準(zhǔn) web 控件的 AJAX 支持。此外就是 WebService 調(diào)用和數(shù)據(jù)綁定的支持機(jī)制,也是利用Altas 框架的基礎(chǔ)架構(gòu)實(shí)現(xiàn)的。
ScriptManager
首先,ScriptManager 是一個(gè)容器,用戶可以在 ScriptManager 標(biāo)簽下定義期望引用的其它 js 庫(kù),以及希望通過(guò) js 直接調(diào)用的 WebService 服務(wù)。
例如在如下的定義中,ScriptManager 控件將保存對(duì)兩個(gè)客戶端 js 庫(kù)和ComplexService 服務(wù)的引用,并在頁(yè)面 Render 的時(shí)候?qū)懭脒m當(dāng)?shù)闹С执a。我們可以通過(guò)ScriptManager.Scripts 和 ScriptManager.Services 屬性訪問(wèn)類似定義。
以下內(nèi)容為程序代碼: <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 非常簡(jiǎn)單,支持通過(guò) ScriptName 或 Path 屬性指定腳本。
ScriptName 指定 Altas 內(nèi)建的庫(kù)名稱,在 FrameworkScript類型中有具體定義。這個(gè)屬性在有的文檔和例子中,也直接稱為 Name 屬性,但最新的 Altas M1 中已改為ScriptName。這個(gè)腳本類型將被通過(guò) ScriptManager.ConvertFrameworkScriptToFileName函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的 js 文件名。
以下內(nèi)容為程序代碼:
public enum FrameworkScript
{
Custom,
AtlasUIDragDrop, // "AtlasUIDragDrop.js";
AtlasUIGlitz, // "AtlasUIGlitz.js";
AtlasUIMap // "AtlasUIMap.js";
}
如果直接使用 Path 則可以指定任意的用戶自定義庫(kù)。
聯(lián)系客服