|
用javascript写的xmlhttp池代码,最下面有调用方法
var Pool_xmlreq=function(){ var _cacheCase=[]; _cacheCase.fetch=function(){ var i=0; var _instance=function(){ try{ return (new ActiveXObject("Msxml2.XMLHTTP.5.0"));} catch(e){ try{ return (new XMLHttpRequest());} catch(e){ try{ return (new ActiveXObject("Msxml2.XMLHTTP"));} catch(e){ try{ return (new ActiveXObject("Microsoft.XMLHTTP"));} catch(e){ alert("Error: initializing xmlhttprequest!");}}}}} for(;i<this.length;i++){ if(this[i].readyState==0||this[i].readyState==4){ return this[i];}} this[i]=_instance(); return this[i];} this.length=function(){ return _cacheCase.length} this.instance=function(){ return _cacheCase.fetch()} this.connect=function(method,url,data,handler){ var _xmlhttpreq=_cacheCase.fetch(); with(_xmlhttpreq){ open(method,url,true); setRequestHeader("Cache-Control","no-cache"); setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); send(data); onreadystatechange=function(){ if(_xmlhttpreq.readyState<4) return false; if(_xmlhttpreq.status==200||_xmlhttpreq.status==304){ handler(decodeURIComponent(_xmlhttpreq.responseText)); return true;} alert("Error: status_"+_xmlhttpreq.status+"!"); return false;}}} } var xmlreq=new Pool_xmlreq();
用法: xmlreq.connect("post",url,postdata,function); |
|