婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > javascript對XMLHttpRequest異步請求的面向?qū)ο蠓庋b

javascript對XMLHttpRequest異步請求的面向?qū)ο蠓庋b

熱門標(biāo)簽:莆田防封電銷卡價格 蓄意標(biāo)記地圖標(biāo)注 察縣地圖標(biāo)注 接聽電話機(jī)器人哪有 信貸電銷機(jī)器人有用嗎 電銷機(jī)器人適用范圍 廣西ai語音電銷機(jī)器人哪家好 如何用地圖標(biāo)注各分公司 辦理一個400電話多少錢
復(fù)制代碼 代碼如下:

function CallBackObject()
{
this.XmlHttp = this.GetHttpObject();
}
CallBackObject.prototype.GetHttpObject = function() //動態(tài)為CallBackObject的原型添加了GetHttpObject共有方法
{
//第一步:創(chuàng)建XMLHttpRequest對象
//進(jìn)行兼容性判斷
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
CallBackObject.prototype.DoCallBack = function(URL)
{
if( this.XmlHttp )
{
if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )
{
var oThis = this;
//第二步:注冊回調(diào)方法,當(dāng)服務(wù)器處理結(jié)束返回數(shù)據(jù)以后利用回調(diào)方法實(shí)現(xiàn)局部的頁面刷新數(shù)據(jù)
//這個回調(diào)方法實(shí)際上在每次XMLHttpRequest對象的readyState屬性的值發(fā)生變化的時候都會被調(diào)用
this.XmlHttp.onreadystatechange = function() {
//根據(jù)XmlHttp.readyState返回值不同調(diào)用不同的方法。
oThis.ReadyStateChange();
};
//第三步:設(shè)置和服務(wù)器交互的相應(yīng)參數(shù)
this.XmlHttp.open('POST', URL);
this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//第四步:設(shè)置向服務(wù)器發(fā)送的數(shù)據(jù),啟動和服務(wù)器端交互
this.XmlHttp.send(null);
}
}
}
CallBackObject.prototype.AbortCallBack = function()
{
if( this.XmlHttp )
this.XmlHttp.abort();
}
CallBackObject.prototype.ReadyStateChange = function() {
//第五步:判斷和服務(wù)器交互是否完成,還要判斷服務(wù)器端是否正確返回數(shù)據(jù)
//this.XmlHttp.readyState == 0初始化狀態(tài)。XMLHttpRequest 對象已創(chuàng)建或已被 abort() 方法重置。
if (this.XmlHttp.readyState == 1) {
//open() 方法已調(diào)用,但是 send() 方法未調(diào)用。請求還沒有被發(fā)送。
this.OnLoading();
}
else if (this.XmlHttp.readyState == 2) {
//Send() 方法已調(diào)用,HTTP 請求已發(fā)送到 Web 服務(wù)器。未接收到響應(yīng)。
this.OnLoaded();
}
else if (this.XmlHttp.readyState == 3) {
//Receiving 所有響應(yīng)頭部都已經(jīng)接收到。響應(yīng)體開始接收但未完成。
this.OnInteractive();
}
else if (this.XmlHttp.readyState == 4) {
//Loaded HTTP 響應(yīng)已經(jīng)完全接收。
if (this.XmlHttp.status == 0)
this.OnAbort();
else if (this.XmlHttp.status == 200 this.XmlHttp.statusText == "OK")
this.OnComplete(this.XmlHttp.responseText, this.XmlHttp.responseXML);
else
this.OnError(this.XmlHttp.status, this.XmlHttp.statusText, this.XmlHttp.responseText);
}
}
CallBackObject.prototype.OnLoading = function()
{
// Loading
}
CallBackObject.prototype.OnLoaded = function()
{
// Loaded
}
CallBackObject.prototype.OnInteractive = function()
{
// Interactive
}
CallBackObject.prototype.OnComplete = function(responseText, responseXml)
{
// Complete
}
CallBackObject.prototype.OnAbort = function()
{
// Abort
}
CallBackObject.prototype.OnError = function(status, statusText)
{
// Error
}


調(diào)用方法如下:
復(fù)制代碼 代碼如下:

script type="text/javascript">
function createRequest()
{
var name = escape(document.getElementById("name").value);
var cbo = new CallBackObject();
cbo.OnComplete = Cbo_Complete;
cbo.onError = Cbo_Error;
cbo.OnLoaded = OnLoading;
cbo.DoCallBack("AjaxTest.aspx?name=" + name);
}

function OnLoading() {
alert("OnLoading " );
}

function Cbo_Complete(responseText, responseXML)
{
alert("成功 "+responseText);
}

function Cbo_Error(status, statusText, responseText)
{
alert(responseText);
}
/script>

onreadystatechange事件
  無論readyState值何時發(fā)生改變,XMLHttpRequest對象都會激發(fā)一個readystatechange事件。其中,onreadystatechange屬性接收一個EventListener值-向該方法指示無論readyState值何時發(fā)生改變,該對象都將激活。
  responseText屬性
  這個responseText屬性包含客戶端接收到的HTTP響應(yīng)的文本內(nèi)容。當(dāng)readyState值為0、1或2時,responseText包含一個空字符串。當(dāng)readyState值為3(正在接收)時,響應(yīng)中包含客戶端還未完成的響應(yīng)信息。當(dāng)readyState為4(已加載)時,該responseText包含完整的響應(yīng)信息。
  responseXML屬性
  此responseXML屬性用于當(dāng)接收到完整的HTTP響應(yīng)時(readyState為4)描述XML響應(yīng);此時,Content-Type頭部指定MIME(媒體)類型為text/xml,application/xml或以+xml結(jié)尾。如果Content-Type頭部并不包含這些媒體類型之一,那么responseXML的值為null。無論何時,只要readyState值不為4,那么該responseXML的值也為null。
  其實(shí),這個responseXML屬性值是一個文檔接口類型的對象,用來描述被分析的文檔。如果文檔不能被分析(例如,如果文檔不是良構(gòu)的或不支持文檔相應(yīng)的字符編碼),那么responseXML的值將為null。
  status屬性
  這個status屬性描述了HTTP狀態(tài)代碼,而且其類型為short。而且,僅當(dāng)readyState值為3(正在接收中)或4(已加載)時,這個status屬性才可用。當(dāng)readyState的值小于3時試圖存取status的值將引發(fā)一個異常。
  statusText屬性
  這個statusText屬性描述了HTTP狀態(tài)代碼文本;并且僅當(dāng)readyState值為3或4才可用。當(dāng)readyState為其它值時試圖存取statusText屬性將引發(fā)一個異常。
您可能感興趣的文章:
  • javascript XMLHttpRequest對象全面剖析
  • js判斷IE6/IE7/FF的代碼[XMLHttpRequest]
  • Javascript+XMLHttpRequest+asp.net無刷新讀取數(shù)據(jù)庫數(shù)據(jù)
  • javascript創(chuàng)建createXmlHttpRequest對象示例代碼
  • 深入講解xhr(XMLHttpRequest)/jsonp請求之a(chǎn)bort
  • JSP XMLHttpRequest動態(tài)無刷新及其中文亂碼處理
  • JavaScript下通過的XMLHttpRequest發(fā)送請求的代碼
  • javascript一個無懈可擊的實(shí)例化XMLHttpRequest的方法
  • [js]輕便的XMLHttpRequest應(yīng)用函數(shù):downloadUrl()
  • AngularJS入門教程之 XMLHttpRequest實(shí)例講解
  • JS XMLHttpRequest原理與使用方法深入詳解

標(biāo)簽:阿拉善盟 鷹潭 銅陵 延邊 張掖 益陽 儋州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《javascript對XMLHttpRequest異步請求的面向?qū)ο蠓庋b》,本文關(guān)鍵詞  javascript,對,XMLHttpRequest,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《javascript對XMLHttpRequest異步請求的面向?qū)ο蠓庋b》相關(guān)的同類信息!
  • 本頁收集關(guān)于javascript對XMLHttpRequest異步請求的面向?qū)ο蠓庋b的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 东台市| 江城| 竹北市| 闽侯县| 铁岭市| 会同县| 年辖:市辖区| 仁布县| 邢台市| 蒲城县| 山西省| 绥棱县| 聂拉木县| 闵行区| 衡阳市| 松溪县| 三河市| 凭祥市| 彩票| 扎赉特旗| 通海县| 澄城县| 连云港市| 九寨沟县| 武山县| 灵璧县| 富平县| 来安县| 萨迦县| 历史| 新邵县| 瓮安县| 改则县| 平阴县| 宁明县| 双辽市| 漳州市| 宽甸| 娱乐| 阿图什市| 大同县|