中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何寫一個Ajax.Request類

發布時間:2021-10-12 09:25:27 來源:億速云 閱讀:100 作者:小新 欄目:web開發

小編給大家分享一下如何寫一個Ajax.Request類,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

目的:因為blog程序里的某些模塊需要用到ajax,直接使用prototype.js體積比較大(40多k),而且僅僅用到其中的ajax功能,因此為了減輕下載的負擔,又不能改動已經在prototype.js框架下寫好的代碼,只能是按照prototype的風格,自己寫一個ajax類,達到零成本移植框架。

新的ajax類如下:

var Ajax = {xmlhttp:function(){
try{
return new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
return new XMLHttpRequest();
}

}
};

Ajax.Request = function(){
if (arguments.length<2) return;
var _p = {asynchronous:true,method:"GET",parameters:""}; //default option
for (var key in arguments[1]){ // custom option overwrite default option
_p[key] = arguments[1][key]; 
}
var _x = Ajax.xmlhttp(); //xml obj
var _url = arguments[0]; //str
if(_p["parameters"].length>0) _p["parameters"] += '&_=';
if(_p["method"].toUpperCase()=="GET")_url += (_url.match(/\?/) ? '&' : '?') + _p["parameters"];
_x.open(_p["method"],_url,_p["asynchronous"]);
_x.onreadystatechange = function(){
if (_x.readyState==4){
if(_x.status==200){
_p["onComplete"]?_p["onComplete"](_x):"";
}else{
_p["onError"]?_p["onError"](_x):"";
}
}
}
if(_p["method"].toUpperCase()=="POST")_x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
_x.send(_p["method"].toUpperCase()=="POST" ? _p["parameters"] : null);
};


這個類保存成js文件,體積還不到1k,足夠小了。哈哈。
調用方法:

var myAjax = new Ajax.Request(
"http://localhost/abc.asp",
{
method:"post",
parameters:"demo=123456789abc",
onComplete:function(xmlhttp){
alert(xmlhttp.responseText)
}
}
);

調用的風格完全與原來相同!

目前這個新類只有兩個回調函數:onComplete 與 onError,Ajax類也只有Request一個方法,畢竟現在blog程序還不需要這么多應用嘛。parameters 屬性有個默認值:{asynchronous:true,method:"GET",parameters:""},可以從中知道,如果調用時不傳入asynchronous、method、parameters三個參數,那么類將使用默認值。

以上是“如何寫一個Ajax.Request類”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河南省| 普安县| 和硕县| 霍城县| 黄陵县| 桃源县| 报价| 获嘉县| 温州市| 高阳县| 洞口县| 礼泉县| 昌平区| 乌兰县| 兴城市| 奉化市| 西乌珠穆沁旗| 石柱| 长治县| 沂源县| 黄骅市| 通河县| 永济市| 巴林右旗| 乌审旗| 黔南| 贞丰县| 建瓯市| 二连浩特市| 临洮县| 桃江县| 阿拉善盟| 若尔盖县| 明光市| 高雄县| 宁海县| 陕西省| 额济纳旗| 固始县| 浪卡子县| 康平县|