對(duì)xmlHttp對(duì)象方法和屬性的理解
1.1 我的理解:
- 用戶(hù)的每次操作,都會(huì)有數(shù)據(jù)產(chǎn)生。
- 通過(guò)DOM或者JS編寫(xiě)對(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í),彈出此窗口?。?!");
}
}
//句柄只有方法名稱(chēng),沒(méi)有這對(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的編寫(xiě)方式固定,因此每一個(gè)步驟都會(huì)伴隨著狀態(tài)的改變,因此時(shí)刻監(jiān)聽(tīng)事件處理句柄,執(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)代碼
全選與全取消在工作過(guò)程中經(jīng)常會(huì)使用到,是因?yàn)樗芊奖悖瑫r(shí)可以提高用戶(hù)體驗(yàn)值,本文介紹如何使用javascript實(shí)現(xiàn)全選與全取消功能,需要了解的朋友可以參考下2012-12-12
JavaScript中使用指數(shù)方法Math.exp()的簡(jiǎn)介
這篇文章主要介紹了JavaScript中使用指數(shù)方法Math.exp(),是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
你必須知道的JavaScript 變量命名規(guī)則詳解
在編寫(xiě)代碼的時(shí)候難免涉及到變量的命名問(wèn)題,不能只要求變量名的語(yǔ)法正確,而忽略了變量命名對(duì)代碼可讀性的影響2013-05-05
js nextSibling屬性和previousSibling屬性概述及使用注意
nextSibling屬性:該屬性表示當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn);如果其后沒(méi)有與其同級(jí)的節(jié)點(diǎn),則返回null;previousSibling屬性:該屬性與nextSibling屬性的作用正好相反,接下來(lái)將詳細(xì)介紹下,感興趣的你不妨了解下哦,或許對(duì)你有所幫助2013-02-02
JavaScript數(shù)值類(lèi)型知識(shí)匯總
這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)值類(lèi)型知識(shí)匯總的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
JavaScript的代碼編寫(xiě)格式規(guī)范指南
這篇文章主要介紹了JavaScript的代碼編寫(xiě)格式規(guī)范指南,文中所分享的一些細(xì)節(jié)基本上也是各大js代碼格式化插件所默認(rèn)約定俗成的,需要的朋友可以參考下2015-12-12
用JavaScript顯示瀏覽器客戶(hù)端信息的超相近教程
這篇文章主要介紹了用JavaScript顯示瀏覽器客戶(hù)端信息的超相近教程,包含了從返回桌面瀏覽器客戶(hù)端內(nèi)核信息到移動(dòng)端瀏覽器以及其使用的系統(tǒng)版本信息等內(nèi)容,傾力推薦!需要的朋友可以參考下2015-06-06
js修改地址欄URL參數(shù)解決url參數(shù)問(wèn)題
現(xiàn)在做網(wǎng)頁(yè),經(jīng)常會(huì)碰到處理地址欄參數(shù)的問(wèn)題,因此,就專(zhuān)門(mén)做了一個(gè)修改地址欄參數(shù)的方法,需要了解的朋友可以參考下2012-12-12

