Java蜘蛛人 歡迎大家

          歡迎大家 來到我的blog , 如果我身邊的朋友 有什么不懂可以直接來問我 我會細心的幫助你的. 如果網絡上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
          posts - 54, comments - 192, trackbacks - 0, articles - 1
          >>注意:請下載后面(9樓)的v1.1正式版。如果要優先考慮IE7中的Native XHR,請自己把附件中bajax.js文件里的bajax_object函數替換一下(修改的代碼在9樓的頁面里——不想更新附件了)。

          前一段時間寫51ditu和動易的集成,現在準備改進成Ajax的。很早以前就知道了Ajax,但一直沒有實際用過。
          網上Google了一番,看了Sajax.php……

          還是簡單點好,自己寫了個很小的封裝,測試對瀏覽器的兼容性還不錯,并且回調函數的接口比較友好。

          另:經測試,發現如果是對同一個XMLHttpReques對象進行多次open、send等操作,IE會有Cache問題,Firefox正常。但如果是每一次都是重新new一個的話,IE就支持得很好了(Firefox自然不用說)。

          用這個庫(面向用戶的其實就一個函數),不用考慮XMLHttpRequest的任何細節,就如同調用和定義普通的Js函數。

          <script language="javascript" src="bajax.js"></script>   
          <script language="javascript">   
          function callback(req, id) 
          {   
              
          if(req.readyState == 4 && req.status == 200{   
                  
          if(id)document.getElementById(id).innerHTML = req.responseText;   
                  
          //eval(req.responseText);   
              }
             
          }
             
          </script>   
          <div id="someid"></div>   
          <div onClick="bajax_send('http://xxx.net/yourscript.php?xxx', callback, 'someid')">點擊查看哦!</div>  

          var bajax_debug_enable = false;   
            
          // 主函數:   
          //(URL,回調函數,傳遞給回調函數的附加數據,方法,POST數據,是否異步)   
          function bajax_send(url, callback, fdata, method, sdata, asyn)   
          {   
              fdata 
          = (fdata === undefined)? null: fdata;   
              method 
          = method || "GET";   
              sdata 
          = (sdata === undefined)? null: sdata;   
              asyn 
          = (asyn === undefined)? true: asyn;   
            
              var X 
          = new bajax_object();   
              
          if(asyn)   
                  X.onreadystatechange 
          = function(){ callback(X, fdata); };   
              X.open(method, url, asyn);   
            
              
          if(bajax_debug_enable)   
                  bajax_debugger(callback);   
              X.send(sdata);   
            
              
          if(asyn) return X;   
              
          else callback(X, fdata);   
          }
             
            
          // 兼容IE與其它瀏覽器(From Sajax.php v0.12)   
          function bajax_object()   
          {   
              var A;   
              var _msxmlhttp 
          = new Array(   
                  
          'Msxml2.XMLHTTP.5.0',   
                  
          'Msxml2.XMLHTTP.4.0',   
                  
          'Msxml2.XMLHTTP.3.0',   
                  
          'Msxml2.XMLHTTP',   
                  
          'Microsoft.XMLHTTP');   
              
          for(var i = 0; i < _msxmlhttp.length; i++{   
                  
          try {   
                      
          if(A = new ActiveXObject(_msxmlhttp[i])) break;   
                  }
           catch (e) {   
                      A 
          = null;   
                  }
             
              }
             
              
          if(!&& typeof XMLHttpRequest != "undefined")   
                  A 
          = new XMLHttpRequest();   
              
          if(!A)   
                  alert(
          "Could not create connection object.");   
            
              
          return A;   
          }
             
            
          // Debug information   
          function bajax_debugger(func)   
          {   
              var S 
          = func.toString();   
              alert(
          '[Running] ' + S.slice(9, S.indexOf(')'10)) + ')');   
          }
            


          function callback(req, id)   
          {   
              
          if(req.readyState == 4{   
                  
          if(req.status != 200{   
                      
          // do some thing.   
                      req.onreadystatechange = null;   
                  }
          else{   
                      var _node 
          = document.getElementById(id);   
                      
          if(_node) _node.innerHTML = 'Hai ' + req.responseText;   
            
                      
          // clear the reference   
                      req.onreadystatechange = null;   
                  }
             
              }
             
          }
            
          '


          function callback(req, id) {     
               
          if(req.readyState == 4 && req.status == 200{     
                   var _node 
          = document.getElementById(id);     
                   
          if(_node) _node.innerHTML = 'Hai ' + req.responseText;     
            
          // clear the reference   
                   req.onreadystatechange = null;   
            
               }
               
           }
              

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 肥乡县| 克拉玛依市| 额敏县| 新巴尔虎右旗| 江都市| 城市| 岳西县| 清流县| 丹凤县| 纳雍县| 福海县| 正安县| 兴宁市| 南澳县| 天长市| 鹿泉市| 通州市| 平安县| 云南省| 金乡县| 河东区| 晋宁县| 和龙市| 澎湖县| 南漳县| 大连市| 屏南县| 名山县| 福海县| 新化县| 荔浦县| 府谷县| 云霄县| 曲阜市| 郓城县| 高安市| 泰州市| 锦州市| 尉氏县| 英超| 息烽县|