1.XMLHttpRequest---用于后臺與服務器進行數據交換,瀏覽器通過XMLHttpRequest進行http通信,所有現代的瀏覽器都支持XMLHttpRequest對象
2.作用:
在不重新加載頁面的情況下更新網頁
在頁面已加載后從服務器請求數據
在頁面已加載后從服務器接收數據
在后臺向服務器發送數據
3.XMLHttpRequest 的使用方法
1)創建XMLHttpRequest對象-------var xmhttp = new XMLHttpRequest();
IE5和IE6 使用 var xmlhttp = new ActiveXObject();
-
xmlhttp.open("get",url,true)
xmlhttp.send();
xmlhttp.onreadystatechange=state_change;function state_change() {
if(xmlhttp.readyState ==4) {
if(xmlhttp.status ==200) {
}else {
}
}
}
4.onreadystatechange ---是一個事件柄,他的值state_change是一個事件名稱,當xmlHttpRequest的狀態發生改變是,才會觸發函數,狀態從0-4發生變化,只有當狀態為4時,才會執行代碼
5.我們在open的第三個參數使用了ture,改參數是代表請求是否異步。true表示腳本會在send()之后執行,而不會等待來自服務器的相應
onreadystatechange 使代碼復雜化,但這是在未得到服務器響應的情況下,防止代碼停止的最好的辦法,
若為false,可以省去額外的onreadystatechange代碼,如果請求失敗時,執行別的代碼無關緊要,可以設置為false。
6.構造函數的屬性
XMLHttpRequest.onreadystatechange
當readyState屬性發生變化時,調用EventHandler
XMLHttpRequest.readyState (只讀)
返回一個無符號短整型數字,代表請求的狀態碼
XMLHttpRequest.response(只讀)
返回一個Array,Blod,Document或者DOMString,具體的類型取決于
XMLHttpRequest.responseType的值,其中包含整個響應實體
XMLHttpRequest.responseText(只讀)
返回一個DOMString,該DOMString包含對請求的響應,如果請求未成功或響應未送達。則返回null
XMLHttpRequest.responseType
一個用于定義響應類型的枚舉值
XMLHttpRequest.responseXML(只讀)
返回一個document,其中包含該請求的響應,如果請求未成功或尚未發送成功,返回null
XMLHttpRequest.status(只讀)
返回一個無符號整形,代表請求的響應狀態。
XMLHttpRequest.statusText(只讀)
返回一個DOMString,其中包含Http服務器返回的響應狀態。與XMLHttpRequest.status不同的,是,它包含完整的響應式文本。
XMLHttpRequest.timeout
表示該請求的最大請求(毫秒),若超出該時間,請求會自動終止。
7.事件處理器
作為XMLRequest實例的屬性之一,所有的瀏覽器都支持onreadystatechange。
方法:
XMLHttpRequest.abort();
如果請求已被發出,則立刻中止請求
XMLHttpRequest.getAllResponseHeaders();
以字符串的形式返回所有用CRLF(回車并換行)分割的響應頭,如果沒有收到響應,則返回null
XMLHttpRequest.getResponseHeader()
返回包含指定響應頭的字符串,如果響應尚未收到或響應中不存在該報頭,則返回null
XMLHttpRequest.open()
初始化一個請求,該方法只能在js代碼中使用,如要在native code中初始化請求,請使用openRequest();
XMLHttpRequest.send();
發送請求,如果請求是異步,那么該方法將在請求發送后立即返回