AJAX技術整理

AJAX(Asynchronous JavaScript and XML),非同步JavaScript和XML

AJAX(Asynchronous JavaScript and XML)非同步JavaScriptXML,在現在是Web開發常見的技術,在ASP.NET上微軟出了ASP.NET AJAX來支援這項開發技術,而這之中提供了四個Server端控制項以及ClientJavaScriptLibrary

AJAX主要的目的是為了提高Web程式的反應速度,使得使用Web UI的感覺可以更為順暢,並且減少頻寬的浪費。

ASP.NET AJAXServer端控制項可以分為四個,分別為ScriptManagerUpdatePanelUpdateProgressTimer四個控制項。

ScriptManager的功能在於管理JavaScript的載入動作,載入AJAXClient Library,除了用在於AJAX外,也可以當作Script的載入管控。

UpdatePanel是用於畫面更新的控制項。

UpdateProgress可以用來在畫面尚未更新時所顯示的畫面。

Timer可以用在需要定時Request的需求上。

這四個控制項的詳細用法在【用實例學ASP.NET 3.5 AJAX 伺服器篇】這本書上有非常詳盡的介紹。

在使用這些控制項的時候有一點是需要注意的,使用AJAX技術不僅僅是為了讓網頁不會閃而已,最重要的一點是使效能提升,減少資源的浪費,使用UpdatePanel的時候,應該放置在需要更新畫面的位置即可,而不是整個畫面都包在一個UpdatePanel裡面。

另外,我們可以使用Ajax Control Toolkits以輕易地達成一些特效。

 

 

AJAX Client Framework是一個JavaScriptFramework,其使用習慣跟.NET Framework一樣,也提供事件處理模型,詳細文件可以參考http://www.asp.net/AJAX/Documentation/Live/default.aspx,在MSDN上也已經有文件,

AJAXClient Script也提供跟Server端相似的事件處理函式,像pageLoad在頁面載入後所執行的事件。

在使用伺服器端控制項來更新畫面時,事實上網頁會整個Post回伺服端,但是,只有需要更新的部分會Response回來,會這樣的原因應該是在於伺服器需要使用這些Post回來的值來重建網頁的狀態,所以需要Post所有網頁的值回來伺服器。

如果需要更輕量的資料傳輸,可以利用PageMethodsWebService來處理資料,這樣不用將所有的網頁資料Post回伺服器,而是只傳回需要的部分,但是,這樣也會失去伺服器控制項所能提供的功能。