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