XMLHttpRequest 物件實現無整頁重載通訊。優勢:使用者體驗流暢(如 Google Maps 拖曳地圖)、減少伺服器來回請求、避免重複渲染完整 UI。
早期 AJAX 開發缺乏框架、IDE 支援,需精通 DHTML/JavaScript、處理跨瀏覽器相容、原始碼暴露安全風險。Atlas(後來的 ASP.NET AJAX)、AJAX.NET、Google Maps API 等工具陸續推出,大幅降低開發門檻。
var request = new ActiveXObject("Microsoft.XMLHTTP");
if (request) {
request.onreadystatechange = CallbackHandler;
request.open("GET", url, true); // true = 非同步
request.send();
}
function CallbackHandler() {
if (request.readyState == 4 && request.status == 200) {
var responseXml = request.responseXML;
// 更新局部 UI
}
}
其他瀏覽器使用 new XMLHttpRequest(),語法大同小異。
ICallbackEventHandler 介面與 Page.ClientScript.GetCallbackEventReference 方法,讓伺服器端控制項/頁面輕鬆實現無整頁回傳的伺服器呼叫,為後續 ASP.NET AJAX 奠基。
Atlas 框架(ASP.NET AJAX 前身)提供客戶端元件庫、伺服器端控制項整合、Web Service 直接呼叫、UpdatePanel 區域更新等,將 AJAX 開發納入標準 ASP.NET 開發流程。