夢(mèng)幻之旅

          DEBUG - 天道酬勤

             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 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 閱讀(246) 評(píng)論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 达尔| 邻水| 宿迁市| 科技| 平昌县| 肇东市| 松江区| 深圳市| 霍州市| 瑞昌市| 灵山县| 韶关市| 合江县| 琼结县| 林周县| 林芝县| 东安县| 电白县| 上蔡县| 永城市| 泾川县| 大埔区| 崇左市| 夏津县| 天长市| 崇阳县| 叶城县| 伊川县| 原平市| 南溪县| 迁西县| 通城县| 盐池县| 界首市| 务川| 巩义市| 溆浦县| 久治县| 苏尼特左旗| 长寿区| 聂荣县|