建一个XMLHttpRequest对象池

2016-01-29 13:34 10 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)
                {
                }
            }
         }  

来源:http://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,它是最重...
标签: Web开发
在IE7的开发中,据说新增加了一个Native对象——XMLHttpRequest。怎么难道开发IE7的"新警察"不知道IE6们都用ActiveX对象XmlHttp吗?XmlHttp出了什么问题,IE7为什么要这么做?原来一切就为了一个简单的兼容而已,但让人感慨颇多。     IE7提供XMLHttpRequest对象后,当然会继续支持ActiveX对象XmlHttp,这是微软这么几十...
在预先定义的内存位置构造一个对象 赵湘宁     常常有人问这样一个C++问题:如何在预先定义的内存位置构造一个对象?在预先定义的内存缓冲构造一个对象有许多有用的应用。例如,一个定制的垃圾搜集器能使用一个大的预分配内存缓冲,用户在这个缓冲中构造其对象。当不...

经验教程

154

收藏

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