對(duì)xmlHttp對(duì)象方法和屬性的理解
1.1 我的理解:
- 用戶的每次操作,都會(huì)有數(shù)據(jù)產(chǎn)生。
- 通過DOM或者JS編寫對(duì)數(shù)據(jù)進(jìn)行封裝,或者瀏覽器自身對(duì)http協(xié)議的一些數(shù)據(jù)進(jìn)行封裝。
- 通過xmlHttp對(duì)象的一些方法,傳入數(shù)據(jù)參數(shù),向http服務(wù)器發(fā)送請(qǐng)求。
- 返回結(jié)果通過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í)通過responseBody和responseText獲取部分?jǐn)?shù)據(jù)會(huì)出現(xiàn)錯(cuò)誤, |
|
4 (完成) |
數(shù)據(jù)接收完畢,此時(shí)可以通過通過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í)現(xiàn)代碼
全選與全取消在工作過程中經(jīng)常會(huì)使用到,是因?yàn)樗芊奖?,同時(shí)可以提高用戶體驗(yàn)值,本文介紹如何使用javascript實(shí)現(xiàn)全選與全取消功能,需要了解的朋友可以參考下2012-12-12
JavaScript中使用指數(shù)方法Math.exp()的簡(jiǎn)介
這篇文章主要介紹了JavaScript中使用指數(shù)方法Math.exp(),是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
你必須知道的JavaScript 變量命名規(guī)則詳解
在編寫代碼的時(shí)候難免涉及到變量的命名問題,不能只要求變量名的語法正確,而忽略了變量命名對(duì)代碼可讀性的影響2013-05-05
js nextSibling屬性和previousSibling屬性概述及使用注意
nextSibling屬性:該屬性表示當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn);如果其后沒有與其同級(jí)的節(jié)點(diǎn),則返回null;previousSibling屬性:該屬性與nextSibling屬性的作用正好相反,接下來將詳細(xì)介紹下,感興趣的你不妨了解下哦,或許對(duì)你有所幫助2013-02-02
js修改地址欄URL參數(shù)解決url參數(shù)問題
現(xiàn)在做網(wǎng)頁,經(jīng)常會(huì)碰到處理地址欄參數(shù)的問題,因此,就專門做了一個(gè)修改地址欄參數(shù)的方法,需要了解的朋友可以參考下2012-12-12

