Java蜘蛛人 歡迎大家

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

          前一段時間寫51ditu和動易的集成,現(xiàn)在準(zhǔn)備改進(jìn)成Ajax的。很早以前就知道了Ajax,但一直沒有實際用過。
          網(wǎng)上Google了一番,看了Sajax.php……

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

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

          用這個庫(面向用戶的其實就一個函數(shù)),不用考慮XMLHttpRequest的任何細(xì)節(jié),就如同調(diào)用和定義普通的Js函數(shù)。

          <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;   
            
          // 主函數(shù):   
          //(URL,回調(diào)函數(shù),傳遞給回調(diào)函數(shù)的附加數(shù)據(jù),方法,POST數(shù)據(jù),是否異步)   
          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;   
            
               }
               
           }
              

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 蒙山县| 资源县| 柏乡县| 伊吾县| 颍上县| 新干县| 石门县| 海伦市| 郴州市| 噶尔县| 增城市| 元江| 临沭县| 寿光市| 白山市| 呼玛县| 甘德县| 始兴县| 岢岚县| 彭阳县| 上高县| 丹东市| 广安市| 盖州市| 汝南县| 松桃| 博白县| 金坛市| 手游| 汝阳县| 阿瓦提县| 金乡县| 娱乐| 祁门县| 墨脱县| 江达县| 定襄县| 河曲县| 南康市| 赣州市| 青冈县|