導言
在過去的幾年時間裡,web開發員開始使用JavaScript來向web伺服器執行非同步回傳,也就是僅僅發送和接收必要的資料.這些技術通常統稱為AJAX.如果設計 合理的話,具有AJAX功能的web應用程式,其使用者介面的高度互動性完全可以與傳統型應用程式相媲美.
由於AJAX包含了網路體系(networking stack)裡不同層面的很多 技術,在不使用AJAX framework的情況下執行AJAX很困難也很容易出錯.還好,微軟為ASP.NET開發人員推出了免費的AJAX framework:即Microsoft ASP.NET AJAX.本文作為本 系列文章的開篇之作,首先總覽AJAX技術以及如何開始使用Microsoft ASP.NET AJAX;然後再探討具體的控制項以及使用細節.
Ajax曆史簡短回顧
client- server模式包括了雙方:一個用戶端和一個伺服器.伺服器端等待來自用戶端的請求,進行相關處理後再做出回應;用戶端向伺服器發出請求,等待回應,最後對返回的資料 進行處理.Web應用程式便是client-server模式的典型代表.在用戶端——通常情況是一個web瀏覽器,向web伺服器請求一個特定的資源,該資源可能是靜態內容 ,比如一個HTML頁面或一個圖片,此時伺服器僅僅需要將其返回即可;也可能是動態內容,比如一個ASP.NET頁面,此時伺服器需要做一些處理後才能將其返回.然而不管怎 麼說,互動模式都是一樣的:客服端請求一個具體的資源,伺服器端將其返回給用戶端.
client-server模式的一個缺點便是延遲性。用戶端必須周期性的與伺服器進 行通訊,更新使用者輸入資訊或擷取最新的資料.在這個過程中,使用者必須等待,而白白浪費掉請求/回應生命週期時間.在ASP.NET應用程式裡,當發生回傳時這種延遲表現的 最為明顯.設想一下在一個電子商務網站裡,列出了一系列的產品,且可以進行分類,並分頁顯示出來.然而,當切換到下一頁面時,將需要對伺服器產生一個回傳,以擷取 下一頁面的產品.自然,這將產生一個延遲,從一秒到幾秒不定,這取決於多種因素(比如網路連接速度、網路擁堵情況、伺服器載入情況、資料庫查詢情況等等).
最 主要的缺點是頁面回傳需要將所有的頁面form欄位發送到伺服器,再將整個頁面內容返回給瀏覽器.這樣一來,互動的資料量就過多了,因為我們只需要下一頁面的產品的信 息.AJAX可以減小這種延遲性,方法是使用JavaScript向web伺服器作出非同步回傳.這些回傳傳輸並接收最少量的必需的資料.對AJAX背景知識的更多介紹,請參閱Jesse James Garrett的隨筆《Ajax: A New Approach to Web Applications》,在這篇文章裡他創造了術語"Ajax".
很多AJAX frameworks是商業性的,當然也有一些 開源類庫(open source libraries).在2006的上半年,微軟發布了自己的AJAX framework,也即:Microsoft ASP.NET AJAX,本系列文章的焦點.