创建多个ajax同时请求,AJAX中同时发送多个请求XMLHttpRequest对象处理方法

下面是我最近写的一个简单的类:

* XMLHttpRequest Object Pool

*

* @author    legend 

* @link      http://www.ugia.cn/?p=85

* @Copyright www.ugia.cn

*/varXMLHttp= {_objPool: [],_getInstance: function ()

{

for (vari=0;i

{

if (this._objPool[i].readyState==0||this._objPool[i].readyState==4)

{

returnthis._objPool[i];

}

}// IE5中不支持push方法this._objPool[this._objPool.length] =this._createObj();

returnthis._objPool[this._objPool.length-1];

},_createObj: function ()

{

if (window.XMLHttpRequest)

{

varobjXMLHttp= newXMLHttpRequest();

}

else

{

varMSXML= ['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];

for(varn=0;n

{try{

varobjXMLHttp= newActiveXObject(MSXML[n]);

break;

}catch(e)

{

}

}

}// mozilla某些版本没有readyState属性if (objXMLHttp.readyState==null)

{objXMLHttp.readyState=0;objXMLHttp.addEventListener("load", function ()

{objXMLHttp.readyState=4;

if (typeof objXMLHttp.onreadystatechange=="function")

{objXMLHttp.onreadystatechange();

}

},false);

}

returnobjXMLHttp;

},// 发送请求(方法[post,get], 地址, 数据, 回调函数)sendReq: function (method,url,data,callback)

{

varobjXMLHttp=this._getInstance();with(objXMLHttp)

{try{// 加随机数防止缓存if (url.indexOf("?") >0)

{url+="&randnum="+Math.random();

}

else

{url+="?randnum="+Math.random();

}open(method,url,true);// 设定请求编码方式setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');send(data);onreadystatechange= function ()

{

if (objXMLHttp.readyState==4&& (objXMLHttp.status==200||objXMLHttp.status==304))

{callback(objXMLHttp);

}

}

}catch(e)

{alert(e);

}

}

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值