[ASP.NET]91之ASP.NET由淺入深 不負責講座 Day25 - AJAX.NET(1)
前言
前面一系列文章,介紹完設計web site常用的UserControl, MasterPage以及預先設計的BasePage。
接著就是要增加user experience的設計了。
今天我們要介紹的是AJAX.NET (這應該是最新的名字) controls的部分,也就是包含了ScriptManager, UpdatePanel以及Timer的簡介。
請注意,UpdatePanel != AJAX,這一點一定要知道。
我們會在下兩篇文章,來介紹Why UpdatePanel跟想像中的AJAX不一樣。
Issues
-
ScriptManager
-
兼具Server Control與Client Script framework的角色
- 也可以使用在AjaxControlToolkit裡面的ToolkitScriptManager,可以參考: http://www.dotblogs.com.tw/hatelove/archive/2009/02/17/7211.aspx
-
只能有一個,而且要最早引用(要在使用任何ScriptManager提供的方法之前引用)
-
兼具Server Control與Client Script framework的角色
-
UpdatePanel
-
企圖達到AJAX功能的Server control
-
Namespace: System.Web.Extension
-
UpdateMode
- UpdateMode="Conditional“
-
UpdateMode=“Always“,Default value
-
驅動方式
- Trigger
-
UpdatePanelID.Update()
-
可以為巢狀UpdatePanel
-
要注意避免使用,完全包覆網頁的UpdatePanel (performance只有下降)
-
企圖達到AJAX功能的Server control
-
Timer
-
功能:定時postback,觸發事件委派方法
- 可透過UpdatePanel來達到非同步的效果,但仍是全頁submit
-
功能:定時postback,觸發事件委派方法
結論
AJAX.NET裡面,最重要,也是一定要知道的一點,UpdatePanel != AJAX,UpdatePanel只能稱的上"Partial Render",部分呈現,所以UpdatePanel並不會為performance帶來戲劇化的改善,包括user experience也是。
簡單的說,UpdatePanel的行為,仍是全頁(form)submit,但最後的Render透過轉發為Ajax的方式,僅修改欲影響的範圍內的原始碼。
詳細的原理,我會在下一篇文章進行說明,敬請期待。
blog 與課程更新內容,請前往新站位置:http://tdd.best/