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