知识大全 建一个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内建对象速查卡

ASP内建对象速查卡  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Application对象 

知识大全 对象设计中创建VS使用

对象设计中创建VS使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!     目录  背

知识大全 ASP内建对象Request

ASP内建对象Request  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从本篇开始作者从AS

知识大全 XMLHTTPRequest的属性和方法简介

XMLHTTPRequest的属性和方法简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于

知识大全 Java对象池示例

Java对象池示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-对象复用“池”(5)

Java程序性能优化-对象复用“池”(5)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 Java程序性能优化-对象复用“池”(1)

Java程序性能优化-对象复用“池”(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 Java对象池技术的原理及其实现

Java对象池技术的原理及其实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文在分析对

知识大全 Java程序性能优化-对象复用“池”(3)[1]

Java程序性能优化-对象复用“池”(3)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!