[ASP.NET]91之ASP.NET由淺入深 不負責講座 Day25 - AJAX.NET(1)

[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

  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
      • UpdateMode="Conditional“
      • UpdateMode=“Always“,Default value
         
    4. 驅動方式
      • Trigger
      • UpdatePanelID.Update()
         
    5. 可以為巢狀UpdatePanel
    6. 要注意避免使用,完全包覆網頁的UpdatePanel (performance只有下降)
       
  3. Timer
    1. 功能:定時postback,觸發事件委派方法
    2. 可透過UpdatePanel來達到非同步的效果,但仍是全頁submit


結論
AJAX.NET裡面,最重要,也是一定要知道的一點,UpdatePanel != AJAX,UpdatePanel只能稱的上"Partial Render",部分呈現,所以UpdatePanel並不會為performance帶來戲劇化的改善,包括user experience也是。

簡單的說,UpdatePanel的行為,仍是全頁(form)submit,但最後的Render透過轉發為Ajax的方式,僅修改欲影響的範圍內的原始碼。

詳細的原理,我會在下一篇文章進行說明,敬請期待。


blog 與課程更新內容,請前往新站位置:http://tdd.best/