梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks
var XmlHttpPool = {
    m_MaxPoolLength : 
10,
    m_XmlHttpPool : [],

    __requestObject : 
function() {
        
var xmlhttp = null;
        
var pool = this.m_XmlHttpPool;
        
for (var i = 0; i < pool.length; ++i) {
            
if (pool[i].readyState == 4 || pool[i].readyState == 0{
                xmlhttp 
= pool[i];
                
break;
            }

        }

        
if (xmlhttp == null{
            
return this.__extendPool();
        }

        
return xmlhttp;
    }
,

    __extendPool : 
function() {
        
if (this.m_XmlHttpPool.length < this.m_MaxPoolLength) {
            
var xmlhttp = null;
            
try {
                xmlhttp 
= new ActiveXObject('MSXML2.XMLHTTP');
            }
 catch(e) {
                
try {
                    xmlhttp 
= new ActiveXObject('Microsoft.XMLHTTP');
                }
 catch(e2) 
              }

            }

            
if (xmlhttp) {
                
this.m_XmlHttpPool.push(xmlhttp);
            }

            
return xmlhttp;
        }

    }
,
    GetRemoteData : 
function(url, callback) {
        
this.__receiveRemoteData(url, callback, 'GET', null);
    }
,        
    GetRemoteDataXML : 
function(url, callback) {
        
this.__receiveRemoteDataXML(url, callback, 'GET', null);
    }
,
    GetRemoteDataEx : 
function(url) {
        
return this.__receiveRemoteDataEx(url, 'GET', null);
    }
,
    GetRemoteDataExXML : 
function(url, callback) {
        
this.__receiveRemoteDataExXML(url, 'GET', null);
    }

    PostRemoteData : 
function(url, callback, data) {
        
this.__receiveRemoteData(url, callback, 'POST', data);
    }
,    
    PostRemoteDataXML : 
function(url, callback, data) {
        
this.__receiveRemoteDataXML(url, callback, 'POST', data);
    }
,
    PostRemoteDataEx : 
function(url, data) {
        
return this.__receiveRemoteDataEx(url, 'POST', data);
    }
,               
    PostRemoteDataExXML : 
function(url, data) {
        
return this.__receiveRemoteDataExXML(url, 'POST', data);
    }
,        
    __receiveRemoteData : 
function(url, callback, httpmethod, data) {
        
var xmlhttp = this.__requestObject();
        
if (!xmlhttp) {
            
return null;
        }

        xmlhttp.open(httpmethod, url, 
true);
        
if (httpmethod == 'POST') {
            xmlhttp.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded")
        }

        xmlhttp.onreadystatechange 
= function() {
            
if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') {
                callback(xmlhttp.responseText);
            }

        }
;
        xmlhttp.send(data);
    }
,
    __receiveRemoteDataEx : 
function(url, httpmethod, data) {
        
var xmlhttp = this.__requestObject();
        
if (!xmlhttp) {
            
return null;
        }

        xmlhttp.open(httpmethod, url, 
false);
        
if (httpmethod == 'POST') {
            xmlhttp.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded")
        }

        xmlhttp.send(data);

        
if (xmlhttp.status == 200{
            
return xmlhttp.responseText;
        }

        
return '';
    }
,
    __receiveRemoteDataXML : 
function(url, callback, httpmethod, data) {
        
var xmlhttp = this.__requestObject();
        
if (!xmlhttp) {
            
return null;
        }

        xmlhttp.open(httpmethod, url, 
true);
        
if (httpmethod == 'POST') {
            xmlhttp.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded")
        }

        xmlhttp.onreadystatechange 
= function() {
            
if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') {
                callback(xmlhttp.responseXML);
            }

        }
;
        xmlhttp.send(data);
    }
,
    __receiveRemoteDataExXML : 
function(url, httpmethod, data) {
        
var xmlhttp = this.__requestObject();
        
if (!xmlhttp) {
            
return null;
        }

        xmlhttp.open(httpmethod, url, 
false);
        
if (httpmethod == 'POST') {
            xmlhttp.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded")
        }

        xmlhttp.send(data);

        
if (xmlhttp.status == 200{
            
return xmlhttp.responseXML;
        }

        
return '';
    }
,

    CancelAll : 
function() {
        
var extendPool = this.__extendPool;
        
this.__extendPool = function() {
            
return null;
        }

        
for (var i = 0; i < this.m_XmlHttpPool.length; ++i) {
            
this.m_XmlHttpPool[i].abort();
        }

        
this.__extendPool = extendPool;
    }

}
;
posted on 2007-12-20 14:12 HUIKK 阅读(238) 评论(0)  编辑  收藏 所属分类: JavaScript

只有注册用户登录后才能发表评论。


网站导航: