AJAX(Asynchronous JavaScript and XML),非同步JavaScript和XML
AJAX(Asynchronous JavaScript and XML),非同步JavaScript和XML,在現在是Web開發常見的技術,在ASP.NET上微軟出了ASP.NET AJAX來支援這項開發技術,而這之中提供了四個Server端控制項以及Client的JavaScript的Library。
AJAX主要的目的是為了提高Web程式的反應速度,使得使用Web UI的感覺可以更為順暢,並且減少頻寬的浪費。
ASP.NET AJAX的Server端控制項可以分為四個,分別為ScriptManager、UpdatePanel、UpdateProgress、Timer四個控制項。
ScriptManager的功能在於管理JavaScript的載入動作,載入AJAX的Client Library,除了用在於AJAX外,也可以當作Script的載入管控。
UpdatePanel是用於畫面更新的控制項。
UpdateProgress可以用來在畫面尚未更新時所顯示的畫面。
Timer可以用在需要定時Request的需求上。
這四個控制項的詳細用法在【用實例學ASP.NET 3.5 AJAX 伺服器篇】這本書上有非常詳盡的介紹。
在使用這些控制項的時候有一點是需要注意的,使用AJAX技術不僅僅是為了讓網頁不會閃而已,最重要的一點是使效能提升,減少資源的浪費,使用UpdatePanel的時候,應該放置在需要更新畫面的位置即可,而不是整個畫面都包在一個UpdatePanel裡面。
另外,我們可以使用Ajax Control Toolkits以輕易地達成一些特效。
AJAX Client Framework是一個JavaScript的Framework,其使用習慣跟.NET Framework一樣,也提供事件處理模型,詳細文件可以參考http://www.asp.net/AJAX/Documentation/Live/default.aspx,在MSDN上也已經有文件,
AJAX的Client Script也提供跟Server端相似的事件處理函式,像pageLoad在頁面載入後所執行的事件。
在使用伺服器端控制項來更新畫面時,事實上網頁會整個Post回伺服端,但是,只有需要更新的部分會Response回來,會這樣的原因應該是在於伺服器需要使用這些Post回來的值來重建網頁的狀態,所以需要Post所有網頁的值回來伺服器。
如果需要更輕量的資料傳輸,可以利用PageMethods或WebService來處理資料,這樣不用將所有的網頁資料Post回伺服器,而是只傳回需要的部分,但是,這樣也會失去伺服器控制項所能提供的功能。