高 楊,郭立群
蘭州石化自動(dòng)化研究院,甘肅蘭州 730060
關(guān)于微軟Ajax的使用探討
高 楊,郭立群
蘭州石化自動(dòng)化研究院,甘肅蘭州 730060
本文主要對(duì)微軟的Ajax進(jìn)行了探討。首先介紹了微軟Ajax的發(fā)展歷程,其次對(duì)微軟Ajax的技術(shù)特點(diǎn)進(jìn)行了介紹,第三分析了微軟 AJAX框架,最后對(duì)微軟AJAX組成部分進(jìn)行了論述。
Ajax;ScriptManager;UpdateProgress
微軟在1998年前后開發(fā)了AJAX局部刷新技術(shù)的核心:XMLHTTP,1999年用于IE5。Jesse James Garrett先生則在2005年2月18日發(fā)表文章《AJAX:A New Approach to Web Applications》為AJAX命名和定義。一切看似偶然,其實(shí)AJAX的發(fā)展是順應(yīng)互聯(lián)網(wǎng)技術(shù)和B/S架構(gòu)發(fā)展應(yīng)運(yùn)而生的。推動(dòng)AJAX技術(shù),目的是為了增強(qiáng)用戶體驗(yàn),提高B/S架構(gòu)性能。
首先,通過AJAX框架和控件工具包,微軟AJAX構(gòu)建了一套比較完整的Web用戶體驗(yàn)框架,提供一組豐富的內(nèi)置組件,并允許開發(fā)者方便地依照自己的需要加以擴(kuò)展。就擴(kuò)展性而言,對(duì)于那些熟悉JavaScript腳本語言的開發(fā)者將極大地提高程序的可維護(hù)性和可重用性。
第二點(diǎn),微軟AJAX與ASP.NET 2.0編程模型有機(jī)集成,使已經(jīng)開發(fā)的應(yīng)用程序可以方便的引入AJAX技術(shù),也使得微軟AJAX應(yīng)用程序能夠非常容易地訪問服務(wù)器端ASP.NET和.NET框架中現(xiàn)有的資源。
第三點(diǎn),使用微軟AJAX,可以自由選擇開發(fā)模型??梢愿鶕?jù)需要選擇以服務(wù)器端為中心還是以客戶端為中心作為應(yīng)用程序的基本開發(fā)模型。
第四點(diǎn),微軟AJAX可以跨平臺(tái)并基于標(biāo)準(zhǔn)使用。Microsoft AJAX Library可以從.NET框架中分離出來,應(yīng)用于其它B/S開發(fā)平臺(tái)。它兼容大多數(shù)瀏覽器和平臺(tái),它實(shí)現(xiàn)的微軟 AJAX腳本框架能夠適用于任何流行的Web服務(wù)器。
第五點(diǎn),運(yùn)行基于微軟 AJAX開發(fā)的應(yīng)用程序時(shí),不需要開發(fā)者在瀏覽器端手動(dòng)插入相關(guān)的JavaScript文件而是由它的服務(wù)器端控件智能安排相關(guān)文件的下載。
最后,微軟AJAX可以在很大程度上減少代碼輸入。特別是減少了瀏覽器端JavaScript代碼的編寫。只需通過調(diào)用相關(guān)控件或再寫少量代碼就可以實(shí)現(xiàn)AJAX功能。
微軟AJAX框架結(jié)構(gòu)包括客戶端和服務(wù)器端兩部分。在客戶端,Microsoft AJAX Library對(duì) JavaScript 進(jìn)行了面向?qū)ο蟮臄U(kuò)展(命名空間、繼承、接口、枚舉、反射和其他功能),建立了Global (擴(kuò)展了JavaScript基類型)、Sys(表示 Microsoft AJAX Library 的根命名空間,其中包含了所有重要的類和基類)、Sys.NET(包含的類型與 ASP.NET AJAX 客戶端應(yīng)用程序和服務(wù)器上的 Web 服務(wù)之間的通信相關(guān))、Sys.Serial ization(包含的類型與 ASP.NET AJAX 客戶端應(yīng)用程序的數(shù)據(jù)序列化相關(guān))、Sys.Services(包含的類型提供對(duì) ASP.NET 身份驗(yàn)證服務(wù)、配置文件服務(wù)及其他應(yīng)用程序服務(wù)的客戶端腳本訪問)、Sys.UI(包含與用戶界面(UI)有關(guān)的類型)、Sys.WebForms(包含與 Microsoft AJAX Library 中的部分頁呈現(xiàn)相關(guān)的類型)等命名空間。它包含對(duì)創(chuàng)建客戶端組件、瀏覽器兼容性以及網(wǎng)絡(luò)和核心服務(wù)的支持,功能十分強(qiáng)大。
Microsoft AJAX Library 由兩部分組成:JavaScript 語言擴(kuò)展和基類庫,可為開發(fā)人員提供預(yù)定義的服務(wù)和工具。盡管對(duì)象的概念已深入人心,但是 JavaScript 本身不能作為面向?qū)ο蟮恼Z言,因?yàn)樗鼰o法在本機(jī)全面實(shí)現(xiàn)面向?qū)ο缶幊痰娜齻€(gè)支柱:繼承、多態(tài)性和封裝。通過對(duì)象原型可以獲得少許繼承,通過閉包也可以獲得少許封裝。因此 Microsoft AJAX Library 會(huì)先為語言提供更多強(qiáng)大的工具,然后再繼續(xù)定義新的類和編程工具。
1)ScriptManager
ScriptManager是放置在Web窗體上的服務(wù)器端控件,在ASP.NET Ajax中發(fā)揮核心作用。其主要任務(wù)是調(diào)解WebForm上的所有其他ASP.NET Ajax控件,并將適當(dāng)?shù)哪_本庫添加到Web瀏覽器中,從而使ASP.NET Ajax的客戶端部分能夠正常工作。它包括在ASP.NET Ajax(動(dòng)態(tài)網(wǎng)站靜態(tài)化)Extensions中,它提供處理頁面上的所有ASP.NET Ajax(動(dòng)態(tài)網(wǎng)站靜態(tài)化)組件(UpdatePanel、UpdateProgress等)的支持。
2)UpdatePanel
UpdatePanel是一個(gè)服務(wù)端控件,它能使用復(fù)雜的客戶端行為來開發(fā)頁面,使得我們開發(fā)的頁面更加人性化。想在客戶端和服務(wù)端進(jìn)行部分更新往往需要很復(fù)雜的JavaScript的支持。然而應(yīng)用UpdatePanel控件你可以不要寫一行JS就能實(shí)現(xiàn)這種功能,可以添加自定義的腳本來提高服務(wù)質(zhì)量。UpdatePanel沒有瀏覽器依賴性(即兼容所有瀏覽器),并且能夠減少服務(wù)端和客戶端之間的數(shù)據(jù)傳輸量。
3)UpdateProgress
UpdateProgress控件用于當(dāng)頁面異步更新數(shù)據(jù)時(shí),顯示給用戶友好的提示信息。該信息可以是文本信息,也可以是圖片信息,用戶可以根據(jù)自己的項(xiàng)目需要或自己的意愿進(jìn)行選擇。使用UpdateProgress控件非常簡單,在默認(rèn)情況下,UpdageProgress控件將顯示頁面上所有的UpdatePanel控件更新的進(jìn)度信息,在以前版本的UpdateProgress中,無法設(shè)置讓UpdateProgress只顯示某一個(gè)UpdatePanel的更新,而在最新版本的UpdateProgress控件中提供了AssociatedUpdatePanelID屬性,可以指定UpdateProgress控件顯示哪一個(gè)UpdatePanel控件。
[1]佚名.最新微軟Ajax庫更新.http://developer.51cto.com/a rt/200910/157029.htm,2009.
[2]Dino Esposito.Microsoft ASP.NET AJAX導(dǎo)學(xué)[M].機(jī)械工業(yè)出版社,2009.
TP312
A
1674-6708(2011)48-0189-01