⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ajaxbase.js

📁 仿招聘网站 SSH框架 ajax功能
💻 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 + -