AJAX(Asynchronous JavaScript and XML)自 Google Suggest 與 Google Maps 普及以來,徹底重塑了 Web 應用體驗。對 ASP.NET 而言,它讓伺服器端邏輯無需整頁回傳即可被呼叫,賦予瀏覽器「豐富伺服器能力」。本文詳細介紹 Michael Schwarz 開發的 Ajax.NET Wrapper(ajax.dll),示範如何以最少設定快速為 ASP.NET 頁面加入非同步呼叫。
Wrapper 透過 HttpHandler 攔截 `Ajax/*.ashx` 請求,配合客戶端 `XmlHttpRequest` 物件,實現「伺服器方法 → JavaScript Proxy → 非同步呼叫 → 回呼處理」的完整鏈路。開發者只需以 `[Ajax.AjaxMethod]` 標記公開方法,Wrapper 即自動產生同名 JS 函式,極大降低 AJAX 門檻。
<httpHandlers>
<add verb="POST,GET" path="Ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Index)); // 目前頁面
// 或 RegisterTypeForAjax(typeof(AjaxFunctions)); // 獨立類別
}
此舉會在頁面輸出兩段 `