簡單的Ajax開發架構
來源:互聯網
上載者:User
Ajax是一項綜合的技術,Ajax的使用過程,首先是在HTML控制項中添加相應的事件觸發屬性,使其具備事件觸發能力;其次是編寫事件處理函數,並在這個函數中初始化XMLHttpRequest對象,指定響應處理常式,建立http請求,設定必要的http要求標頭資訊,向伺服器發送所建立的http請求;最後才是建立響應處理函數,在對http請求狀態進行判斷的基礎上作出既定的業務處理事務。
(一)事件處理函數,按照以下順序處理下列事務:
a) 初始化XMLHttpRequest對象;
實現代碼如下:
if(widow.XMLHttpRequest) {//Mozilla,Safari,.......
http_request= new XMLHttpRequest();
} else if(window.ActiveXObject) {//IE
http_request= new ActiveXObject("Microsoft.XMLHTTP");
} else {
window.alert("瀏覽器沒有實現XMLHttpRequest 組件對象!");
}
b) 設定XMLHttpRequest對象的onreadystatechange 屬性,指定伺服器返迴響應資料時要調用的回呼函數, 即指定響應處理函數;
實現代碼如下:
http_request.onreadystatechange=processRequest;
c) 調用XMLHttpRequest對象的open方法,建立http請求;
實現代碼如下:
http_request.open("GET", "http://www.example.org/some.file", true);
d) 調用XMLHttpRequest對象的setRequestHeader等方法,設定必要的http要求標頭資訊;
實現代碼如下:
http_request.setRequestHeader("Content-Type",application/x-www-form-urlencoded);
e) 調用XMLHttpRequest對象的send方法,發送之前建立的http請求;
實現代碼如下:
http_request.send(null);
f) 根據XMLHttpRequest對象的open方法參數,決定是否等待伺服器返迴響應資料.
(二)回呼函數(響應處理函數)執行以下事務:
aa) 判斷http請求的狀態,並作相應處理;
bb) 調用XMLHttpRequest對象的responseXML or responseText方法,將伺服器返回的響應資料賦予Javascript變數或對象;
cc) 使用DOM或其它方式解析伺服器返回的響應資料,儲存在緩衝變數或數組中;
dd) 使用DOM解析HTML文檔,定位目標HTML文檔節點;
ee) 使用解析完畢的伺服器返回的響應資料,更新上一步解答分析HTML文檔節點的屬性值或內容,從而更新HTML文檔頁面內容.