Microsoft Ajax Library是由JavaScript寫成,封裝在System.Web.Extension.dll中,預設.NET Framework安裝時會將它裝到GAC之中。它提供了JavaScript擴充功能,包含增強型別系統以及物件導向能力。透過此程式庫,document.getElementById("TextBox1").value可改寫為$get("TextBox1").value,這些稱為捷徑語法。
ASP.NET AJAX在瀏覽器執行會觸發生命週期事件,觸發順序請參考課本5-9。Application物件的load、unload事件處理常式不需要透過程式註冊,可以直接撰寫function pageLoad(){}。
熟悉PageRequestManager類別可以控管頁面的部分更新,例如與ScriptManager控項的RegisterDataItem方法,就可以在非同步的postback時,傳送額外的資料,以更新UpdatePanel之外的控項。也可以利用beginRequest、endRequest事件的搭配控制按鈕的狀態,避免使用者重複按按鈕。
如果要除錯AJAX,需要設定三個地方:WebConfig的debug、瀏覽器設定的ScriptDebugging、Display notification.
Sys.Debug.trace可將錯誤訊息輸出至output視窗,Sys.Debug.traceDump方法可以將物件資訊輸出在頁面中名為TraceConsole的textarea控項中。
為了方便管理js檔案,可以用專案部署內嵌在組件中,實作請參考課本練習5.4
在AJAX網頁中,可以再將ScriptManager的EnableGlobalization屬性設為True,啟用指令碼全球化,這時,將Page的Culture設為auto,就可以取得控制台或是瀏覽器設定的文化特性,顯示特定文化的時間、貨幣等相關資料。EnableLocalization屬性可啟用指令碼當地語系化,配合page的宣告UICulture=auto,可讀取各語系專用的resource資源。
當你的網站程式用到多個js檔,可以封裝成一個檔案,將程式碼組合在一起,降低瀏覽器與伺服器溝通的次數,用法是使用ScriptManager的CompositeScript,將ScriptReference寫在一起。
沒有留言:
張貼留言