官术网_书友最值得收藏!

2.4 XMLHttpRequest對(duì)象的運(yùn)行周期

整個(gè)Ajax技術(shù)緊緊圍繞在XMLHttpRequest對(duì)象周?chē)私釾MLHttpRequest對(duì)象的運(yùn)行周期,就是了解Ajax應(yīng)用的運(yùn)行。

(1)Ajax應(yīng)用總是從創(chuàng)建XMLHttpRequest對(duì)象開(kāi)始。XMLHttpRequest對(duì)象的作用:運(yùn)行通過(guò)客戶端腳本來(lái)發(fā)送HTTP請(qǐng)求。Ajax應(yīng)用的第一步總是創(chuàng)建一個(gè)XMLHttpRequest實(shí)例,然后使用它來(lái)發(fā)送請(qǐng)求,這種請(qǐng)求可以使用GET方式,也可以使用POST方式。

(2)XMLHttpRequest發(fā)送完之后,服務(wù)器響應(yīng)何時(shí)到達(dá)?應(yīng)該如何處理服務(wù)器的響應(yīng)呢?Ajax的核心對(duì)象是XMLHttpRequest,它能觸發(fā)的事件是onreadystatechange。當(dāng)XMLHttpRequest的狀態(tài)改變時(shí),將觸發(fā)其onreadystatechange事件。為XMLHttpRequest對(duì)象的onreadystatechange事件指定事件處理函數(shù),該事件處理函數(shù)就可以在XMLHttpRequest狀態(tài)改變時(shí)被觸發(fā),這個(gè)事件處理函數(shù)也稱(chēng)回調(diào)函數(shù)。

(3)XML狀態(tài)改變,且readyState為4時(shí),即表明服務(wù)器的響應(yīng)已經(jīng)完成,此時(shí)可以開(kāi)始處理服務(wù)器響應(yīng)。

(4)通過(guò)JavaScript的事件機(jī)制,使用事件處理函數(shù)監(jiān)聽(tīng)XMLHttpRequest狀態(tài)的改變,當(dāng)XMLHttpRequest的readyState為4,且status為200時(shí),事件處理函數(shù)開(kāi)始處理事件服務(wù)器響應(yīng)。

(5)進(jìn)入事件處理函數(shù)后,XMLHttpRequest依然不可或缺,事件處理函數(shù)必須借助于XMLHttpRequest來(lái)獲取服務(wù)器響應(yīng),調(diào)用responseText方法或者responseXML方法獲取服務(wù)器的響應(yīng)。至此,XMLHttpRequest對(duì)象的運(yùn)行周期結(jié)束。

(6)JavaScript通過(guò)DOM操作將服務(wù)器響應(yīng)動(dòng)態(tài)地加載到XHTML頁(yè)面中。

從發(fā)送HTTP請(qǐng)求,到監(jiān)控服務(wù)器的響應(yīng)狀態(tài),再到獲取服務(wù)器響應(yīng)數(shù)據(jù),XMLHttpRequest對(duì)象一直是Ajax技術(shù)的靈魂。

圖2-11顯示了XMLHttpRequest的運(yùn)行周期。

圖2-11 XMLHttpRequest的運(yùn)行周期

主站蜘蛛池模板: 石狮市| 望奎县| 临城县| 浏阳市| 定兴县| 建阳市| 青海省| 孟津县| 华池县| 公主岭市| 思南县| 中超| 阜新市| 泗阳县| 三门峡市| 保康县| 虞城县| 泸溪县| 嘉善县| 德化县| 铁岭市| 兴海县| 仲巴县| 苍溪县| 临沭县| 临泉县| 静乐县| 陇南市| 汶川县| 商都县| 和平县| 乡宁县| 宾阳县| 双鸭山市| 永仁县| 兰西县| 永定县| 阿勒泰市| 罗山县| 措勤县| 隆林|