對(duì)xmlHttp對(duì)象方法和屬性的理解
1.1 我的理解:
- 用戶的每次操作,都會(huì)有數(shù)據(jù)產(chǎn)生。
- 通過(guò)DOM或者JS編寫對(duì)數(shù)據(jù)進(jìn)行封裝,或者瀏覽器自身對(duì)http協(xié)議的一些數(shù)據(jù)進(jìn)行封裝。
- 通過(guò)xmlHttp對(duì)象的一些方法,傳入數(shù)據(jù)參數(shù),向http服務(wù)器發(fā)送請(qǐng)求。
- 返回結(jié)果通過(guò)DOM進(jìn)行處理。
2 xmlHttp對(duì)象的成員。
2.1 屬性
- onreadystatechange:當(dāng)readyState屬性值發(fā)生改變時(shí),觸發(fā)的事件處理句柄。
例子:xmlHttp.onreadystatechange = functionHandler;
function functionHandler() {
if(xmlHttp.readyState == 4) {
alert("當(dāng)readyState狀態(tài)為4時(shí),彈出此窗口?。?!");
}
}
//句柄只有方法名稱,沒有這對(duì)“()”括號(hào)。賦值時(shí)要注意理解。
- readyState:這個(gè)屬性表示狀態(tài);總共有五種狀態(tài):
0 (未初始化) |
對(duì)象已建立,但是尚未初始化(尚未調(diào)用open方法) |
1 (初始化) |
對(duì)象已建立,尚未調(diào)用send方法 |
2 (發(fā)送數(shù)據(jù)) |
send方法已調(diào)用,但是當(dāng)前的狀態(tài)及http頭未知 |
3 (數(shù)據(jù)傳送中) |
已接收部分?jǐn)?shù)據(jù),因?yàn)轫憫?yīng)及http頭不全,這時(shí)通過(guò)responseBody和responseText獲取部分?jǐn)?shù)據(jù)會(huì)出現(xiàn)錯(cuò)誤, |
4 (完成) |
數(shù)據(jù)接收完畢,此時(shí)可以通過(guò)通過(guò)responseBody和responseText獲取完整的回應(yīng)數(shù)據(jù) |
// 因?yàn)?/SPAN>xmlHttp的編寫方式固定,因此每一個(gè)步驟都會(huì)伴隨著狀態(tài)的改變,因此時(shí)刻監(jiān)聽事件處理句柄,執(zhí)行相應(yīng)的邏輯。
代碼執(zhí)行順序:
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlHttpReq.open("GET", "http://localhost/test.xml", false);
xmlHttpReq.send();
alert(xmlHttpReq.responseText);
2.2 方法
- open(Method, Url, Syn, User, Password);
創(chuàng)建一個(gè)新的xmlHttp對(duì)象時(shí),實(shí)際上就是創(chuàng)建一個(gè)http請(qǐng)求。
此方法指定請(qǐng)求的方式(GET/POST/PUT/PROPFIND)、 URL、異步(默認(rèn)情況為true)、驗(yàn)證信息。
采用異步方式(true)時(shí),狀態(tài)改變時(shí)會(huì)調(diào)用onreadystatechange屬性指定的回調(diào)函數(shù)。
- send();
此方法的同步或異步方式取決于open方法中的Syn參數(shù),如果Syn == false,此方法將會(huì)等待請(qǐng)求完成或者超時(shí)時(shí)才會(huì)返回,如果Syn == true,此方法將立即返回。
相關(guān)文章
深入Javascript函數(shù)、遞歸與閉包(執(zhí)行環(huán)境、變量對(duì)象與作用域鏈)使用詳解
本篇文章對(duì)Javascript中函數(shù)、遞歸與閉包(執(zhí)行環(huán)境、變量對(duì)象與作用域鏈)的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05jQuery中文入門指南,翻譯加實(shí)例,jQuery的起點(diǎn)教程
jQuery中文入門指南,翻譯加實(shí)例,jQuery的起點(diǎn)教程...2007-01-01在JavaScript中操作時(shí)間之getUTCDate()方法的使用
這篇文章主要介紹了在JavaScript中操作時(shí)間之getUTCDate()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06Javascript實(shí)現(xiàn)的SHA-256加密算法完整實(shí)例
這篇文章主要介紹了Javascript實(shí)現(xiàn)的SHA-256加密算法,以完整實(shí)例形式分析了JavaScript實(shí)現(xiàn)SHA-256加密的具體步驟與相關(guān)技巧,需要的朋友可以參考下2016-02-02JavaScript 瀏覽器對(duì)象模型BOM使用介紹
這篇文章主要介紹了JavaScript 瀏覽器對(duì)象模型BOM使用介紹,需要的朋友可以參考下2015-04-04在javascript中對(duì)于DOM的加強(qiáng)
本篇文章,小編為大家介紹關(guān)于在javascript中對(duì)于DOM的加強(qiáng),有需要的朋友可以參考一下2013-04-04