📄 ajaxbase.js
字号:
/** * @author zhangdaijun 20061227 * var req = new ajaxHttpReq(reqUrl,reqParams,reqMethod,loadSuccess,loadFailure,extendParams) * req.load(); */
var ajaxClass = { create : function(){ return function(){ if(this.init && typeof(this.init) == "function"){ this.init.apply(this,arguments);
}
}
}
};var ajaxHttpReq = ajaxClass.create();ajaxHttpReq.prototype = { reqObjPools : new Array(), init : function(reqUrl,reqParams,reqMethod,loadSuccess,loadFailure,extendParams){ if(arguments.length == 0) return; this.reqObj = (this.reqObj)? this.reqObj:this.createHttpRequest();//this.getInstance() this.reqUrl = reqUrl; this.reqParams = reqParams; this.reqMethod = reqMethod; this.extendParams = extendParams; this.onLoadSuccess = loadSuccess; this.onLoadFailure = (loadFailure) ? loadFailure:this.defaultError;
}, load : function(){ try { if(this.reqObj){ var _self = this; this.reqObj.onreadystatechange = function(){ _self.onReadyState(); }; var params =""; if(this.reqParams.length > 0){ params = this.reqParams.indexOf("?") == -1 ? "?":""; params = params + this.reqParams + "&=" + Math.random(); } else{ params = "?=" + Math.random(); } if(this.reqMethod.toLowerCase() == "get"){ this.reqObj.open("GET",this.reqUrl + params,true); this.reqObj.send(null); }else{ this.reqObj.open("POST",this.reqUrl,true);// + params this.reqObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); this.reqObj.send(this.reqParams.indexOf("?") == -1 ? this.reqParams:this.reqParams.substring(1,this.reqParams.length));// post max:2gb } }
else
{
var e = {name:"http request for null", description:"http request for null", number:""}; this.onLoadFailure.apply(this,[e]);
}
}catch(e){ this.onLoadFailure.apply(this,[e]);
}
}, onReadyState : function(){ if(this.reqObj.readyState == 4){ if(this.reqObj.status == 200){ this.onLoadSuccess.apply(this,[this.extendParams]);//[].slice.call(this.extendParams);
}else{ var e = {name:"HTTP request failed", description:" HTTP request failed with status:" + this.reqObj.status, number:""}; this.onLoadFailure.apply(this,[e]);
}
}
}, createHttpRequest : function(){ var httpReq = null; if(window.XMLHttpRequest){ httpReq = new window.XMLHttpRequest();
if (httpReq.overrideMimeType) {
httpReq.overrideMimeType("text/html");
}
}else{ var MSXML = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP','MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0']; for(var n = 0; n < MSXML.length; n ++){
try{
var httpReq = new window.ActiveXObject(MSXML[n]);
break;
}
catch(e){
}
}
}
if (httpReq.readyState == null){//Firefox some version
httpReq.readyState = 0;
httpReq.addEventListener("load", function ()
{
httpReq.readyState = 4;
if (typeof httpReq.onreadystatechange == "function")
{
httpReq.onreadystatechange();
}
}, false);
} return httpReq;
}, getInstance : function(){ for(var i=0;i < this.reqObjPools.length; i ++){ if(this.reqObjPools[i].readyState == 0 || this.reqObjPools[i].readyState == 4){ return this.reqObjPools[i]; } } this.reqObjPools[this.reqObjPools.length] = this.createHttpRequest();//ie5 no push return this.reqObjPools[this.reqObjPools.length - 1]; }, defaultError : function(e) {
var err = new Array();
err.push("name:" + e.name);
err.push("desc:" + e.description);
err.push("number:" + e.number);
alert(err.join("\n"));
}
};function ajaxPostData(url,params,succFunc,failFunc,extendParams){ var searchReq = new ajaxHttpReq(url,params,"post",succFunc,failFunc,extendParams);
searchReq.load(); }var __searchReq = new ajaxHttpReq();function ajaxGetData(url,params,succFunc,failFunc,extendParams){ if(__searchReq.reqObj){ __searchReq.reqObj.abort(); } __searchReq.init(url,params,"get",succFunc,failFunc,extendParams);
__searchReq.load();}/*For Examples :function get_data(){ ajaxHttpRequest("ajax.aspx","type=1,flag=b",get_data_succ,"succ") }function get_data_succ(response){ if(response.error != null){ alert(response.error); } else{ var context = response.context; var value = response.value; var request = response.request; }}*/function ajaxHttpRequest(url, params, callback, context){
var extendParams = new Array();
extendParams.push(callback);
extendParams.push(context);
var request = new ajaxHttpReq();
request.init(url,params,"get",ajaxHttpResponse,ajaxError,extendParams);
request.load();
}
function ajaxHttpResponse(){
if(!this.reqObj) return;
var res = {};
res.request = this.reqObj;
res.error = null;
res.value = this.reqObj.responseText;
res.context = this.extendParams[1];
if(typeof this.extendParams[0] == "function"){
this.extendParams[0](res);
return;
}
return res;
}function ajaxError(e){
var res = {};
res.request = this.reqObj;
res.error = e.name + " " + e.description + " " + e.number;
res.value = "";
res.context = this.extendParams[1];
if(typeof this.extendParams[0] == "function"){
this.extendParams[0](res);
return;
}
return res;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -