知识大全 建一个XMLHttpRequest对象池
Posted 知
篇首语:你对人人都喜欢,也就是说,你对人人都漠然。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 建一个XMLHttpRequest对象池相关的知识,希望对你有一定的参考价值。
建一个XMLHttpRequest对象池 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在ajax应用中 通常一个页面要同时发送多个请求 如果只有一个XMLHttpRequest对象 前面的请求还未完成 后面的就会把前面的覆蓋掉 如果每次都创建一个新的XMLHttpRequest对象 也会造成浪费 解决的办法就是创建一个XMLHttpRequset的对象池 如果池里有空闲的对象 则使用此对象 否则将创建一个新的对象 下面是我最近写的一个简单的类 /** * XMLHttpRequest Object Pool * * @author legend <l> * @link * @Copyright */ var XMLHttp = _objPool: [] _getInstance: function () for (var i = ; i < this _objPool length; i ++) if (this _objPool[i] readyState == || this _objPool[i] readyState == ) return this _objPool[i]; // IE 中不支持push方法 this _objPool[this _objPool length] = this _createObj(); return this _objPool[this _objPool length ]; _createObj: function () if (window XMLHttpRequest) var objXMLHttp = new XMLHttpRequest(); else var MSXML = [ MSXML XMLHTTP MSXML XMLHTTP MSXML XMLHTTP MSXML XMLHTTP Microsoft XMLHTTP ]; for(var n = ; n < MSXML length; n ++) try var objXMLHttp = new ActiveXObject(MSXML[n]); break; catch(e) // mozilla某些版本没有readyState属性 if (objXMLHttp readyState == null) objXMLHttp readyState = ; objXMLHttp addEventListener( load function () objXMLHttp readyState = ; if (typeof objXMLHttp onreadystatechange == function ) objXMLHttp onreadystatechange(); false); return objXMLHttp; // 发送请求(方法[post get] 地址 数据 回调函数) sendReq: function (method url data callback) var objXMLHttp = this _getInstance(); with(objXMLHttp) try // 加随机数防止缓存 if (url indexOf( ? ) > ) url += &randnum= + Math random(); else url += ?randnum= + Math random(); open(method url true); // 设定请求编码方式 setRequestHeader( Content Type application/x form urlencoded; charset=UTF ); send(data); onreadystatechange = function () if (objXMLHttp readyState == && (objXMLHttp status == || objXMLHttp status == )) callback(objXMLHttp); catch(e) alert(e); ; 示例 <script type= text/JavaScript src= xml js ></script> <script type= text/Javascript > function test(obj) alert(obj statusText); XMLHttp sendReq( GET test); XMLHttp sendReq( GET test); XMLHttp sendReq( GET test); XMLHttp sendReq( GET test); alert( Pool length: + XMLHttp _objPool length); </script> cha138/Article/program/net/201311/13569相关参考
知识大全 详解AJAX核心中的XMLHttpRequest对象
详解AJAX核心中的XMLHttpRequest对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP内建对象速查卡 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Application对象
对象设计中创建VS使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目录 背
ASP内建对象Request 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从本篇开始作者从AS
XMLHTTPRequest的属性和方法简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于
Java对象池示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
Java程序性能优化-对象复用“池”(5) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java程序性能优化-对象复用“池”(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java对象池技术的原理及其实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要本文在分析对
Java程序性能优化-对象复用“池”(3)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!