1.1 我的理解:
2 xmlHttp對象的成員。
2.1 屬性
例子:xmlHttp.onreadystatechange = functionHandler;
function functionHandler() {
if(xmlHttp.readyState == 4) {
alert("當readyState狀態為4時,彈出此窗口!!!");
}
}
//句柄只有方法名稱,沒有這對“()”括號。賦值時要注意理解。
0 (未初始化)
對象已建立,但是尚未初始化(尚未調用open方法)
1 (初始化)
對象已建立,尚未調用send方法
2 (發送數據)
send方法已調用,但是當前的狀態及http頭未知
3 (數據傳送中)
已接收部分數據,因為響應及http頭不全,這時通過responseBody和responseText獲取部分數據會出現錯誤,
4 (完成)
數據接收完畢,此時可以通過通過responseBody和responseText獲取完整的回應數據
// 因為xmlHttp的編寫方式固定,因此每一個步驟都會伴隨著狀態的改變,因此時刻監聽事件處理句柄,執行相應的邏輯。
代碼執行順序:
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlHttpReq.open("GET", "http://localhost/test.xml", false);
xmlHttpReq.send();
alert(xmlHttpReq.responseText);
2.2 方法
創建一個新的xmlHttp對象時,實際上就是創建一個http請求。
此方法指定請求的方式(GET/POST/PUT/PROPFIND)、 URL、異步(默認情況為true)、驗證信息。
采用異步方式(true)時,狀態改變時會調用onreadystatechange屬性指定的回調函數。
此方法的同步或異步方式取決於open方法中的Syn參數,如果Syn == false,此方法將會等待請求完成或者超時時才會返回,如果Syn == true,此方法將立即返回。