建一个XMLHttpRequest对象池

2016-01-29 13:34 7 1 收藏

建一个XMLHttpRequest对象池,建一个XMLHttpRequest对象池

【 tulaoshi.com - PHP 】

在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest对象,前面
的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的XMLHttpRequest对象,
也会造成浪费。解决的办法就是创建一个XMLHttpRequset的对象池,如果池里有空闲的对象,
则使用此对象,否则将创建一个新的对象。下面是我最近写的一个简单的类:
/**
 * XMLHttpRequest Object Pool
 *
 * @author    legend <legendsky@hotmail.com
 * @link      http://www.ugia.cn/?p=85
 * @Copyright www.ugia.cn
 */
   
var XMLHttp = {
    _objPool: [],
   
    _getInstance: function ()
    {
        for (var i = 0; i < this._objPool.length; i ++)
        {
            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4)
            {
                return this._objPool[i];
            }
        }
   
        // IE5中不支持push方法
        this._objPool[this._objPool.length] = this._createObj();
   
        return this._objPool[this._objPool.length - 1];
    },
   
    _createObj: function ()
    {
        if (window.XMLHttpRequest)
        {
            var objXMLHttp = new XMLHttpRequest();
   
        }
        else
        {
            var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0',
                  'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
            for(var n = 0; n < MSXML.length; n ++)
            {
                try
                {
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
         }  

来源:https://www.tulaoshi.com/n/20160129/1490690.html

延伸阅读
标签: Web开发
在CommunityServer中运用了自己的AJAX机制,没有借助其他的辅助控件。其中客户的XMLHttpRequest对象的封装,就足以让人大饱眼福,在一般的浏览器其都能够运行AJAX。下面我们来学习学习这个咚咚,希望能给更多的人带来帮助。  首先当然是要了解一下浏览器中的XMLHttp对象了:  XMLHTTP方法:       ...
标签: Web开发
AJAX - 更多有关 XMLHttpRequest 对象的知识 在向服务器发送数据之前,我们有必要解释一下 XMLHttpRequest 对象的三个重要的属性。 onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置: xmlHttp.onreadystatechange=function() { // 我...
标签: Web开发
     当前ajax技术作为web2.0的技术主体,已经是非常流行了。现在的很多网站都已做ajax为时尚,因为它的页面响应速度快,用户体验高啊,每次转换页面几乎就是不刷新。那么是什么东西使这ajax的响应这么快呢?是XMLHTTPRequest对象。XMLHTTPRequest对象是ajax技术的核心,没有XMLHTTPRequest对象就相当于没有ajax,它是最重...
在预先定义的内存位置构造一个对象 赵湘宁     常常有人问这样一个C++问题:如何在预先定义的内存位置构造一个对象?在预先定义的内存缓冲构造一个对象有许多有用的应用。例如,一个定制的垃圾搜集器能使用一个大的预分配内存缓冲,用户在这个缓冲中构造其对象。当不...
C++ Q&A 专栏... 删除托管对象,如何包装一个库?及其它...... 原著:Paul DiLascia 翻译:Northtibet 原代码下载:CQA0412.exe (235KB) 原文出处:MSDN Magazine December 2004 (C++ Q&A) 删除托管对象 如何包装一个库? 如何将托管 Strin...

经验教程

234

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部