自知其無知
          不懂,慢慢懂。
          posts - 2,comments - 2,trackbacks - 0

          function getXMLHTTPRequest(){
             
          var xRequest = null
             
          if (window.XMLHttpRequest){
               xRequest 
          = new XMLHttpRequest() ;  // Mozilla / Safari
            }
          else if ( typeof ActiveXObject  != 'undefined'){
               xRequest 
          = new ActiveObject("Microsoft.XMLHTTP");   // IE
            }

            
          return xRequest ;
          }


          同樣的,我們使用對(duì)象檢測(cè)來測(cè)試是否支持原生的 XMLHttpRequest 對(duì)象,如果不支持,再測(cè)試是否支持 Activex 對(duì)象。在兩者都不支持的瀏覽器中,我們簡單的放回 null 。

          向服務(wù)器發(fā)送請(qǐng)求:(給它傳遞一個(gè)服務(wù)器頁面的 URL,這個(gè)頁面將生成數(shù)據(jù))

          function sendRequest(url,params,HttpMehtod){
            
          if!HttpMethod ){
              HttpMethod 
          = 'POST';
           }

           
          var req = getXMLHTTPRequest();
           
          if(req){
             req.oepn(HttpMethod,url,
          true);
             req.setRequestHeader('Content
          -Type','application/x-www-form-urlencoded'); 
             req.send(params);
           }

          }


          XMLHttpRequest 支持大量的HTTP 調(diào)用語義,包括用來動(dòng)態(tài)生成頁面的可選查詢字符串參數(shù)(你可能已經(jīng)知道這些 CGI 參數(shù)、FORM 參數(shù)或者 ServletRequest參數(shù),取決于服務(wù)器端的開發(fā)背景)。

          sendRequest() 方法包含的第二個(gè)和第三個(gè)參數(shù)都是可選參數(shù),大部分情況下都用不上。默認(rèn)使用Post 方法來獲取資源,在請(qǐng)求的主題部分不需要傳遞任何參數(shù)。

          分配一個(gè)回調(diào)函數(shù): 在未來某個(gè)不確定的時(shí)刻,當(dāng)結(jié)果返回的時(shí)候,將會(huì)執(zhí)行這段代碼。
          window.onload 函數(shù)就是一個(gè)回調(diào)函數(shù)。

          使用回調(diào)函數(shù):

          var READY_STATE_UNIITIALIZED = 0;
          var READY_STATE_LOADING = 1;
          var READY_STATE_LOADED = 2;
          var READY_STATE_INTERACTIVE =3 ;
          var READY_STATE_COMPLETE = 4;
          var req;

          function sednRequest(url,params,HttpMethod){
            
          if(!HttpMethodd){
             HttpMthod 
          = 'GET';
           }

           req 
          = getXMLHTTPRequest();
           
          if(req){
             req.onreadystatechange 
          = onReadyStateChange;
             req.open(HttpMethod,url,
          true);
            req.setRequestHeader('Content
          -Type','application/x-www-form-urlencoded');
            req.send(params);
           }

          }


          function onReadyStateChange(){
            
          var ready = req.readyState;;
            
          var data = null;
            
          if(ready == READY_STATE_COMPLETE){
               data 
          = req.responseText;
            }
          else{
               data 
          = 'loading  [' + ready + ']';
            }

           
          //  do something with the data 
          }
           

          這里將請(qǐng)求對(duì)象聲明為一個(gè)全局對(duì)象,這樣有利于保持事情的簡單,那如何同時(shí)發(fā)送多個(gè)請(qǐng)求。。
          待續(xù)。。。。
          posted on 2008-12-08 22:25 CopyHoo 閱讀(566) 評(píng)論(0)  編輯  收藏 所屬分類: Ajax
          主站蜘蛛池模板: 云和县| 四会市| 句容市| 绥滨县| 康保县| 平塘县| 斗六市| 无棣县| 道孚县| 宁蒗| 永春县| 封开县| 高唐县| 义马市| 马山县| 丹阳市| 深圳市| 鹤壁市| 常山县| 股票| 景宁| 尖扎县| 宁陵县| 内丘县| 林芝县| 临湘市| 邳州市| 兴业县| 衡水市| 遵义市| 肥乡县| 湘潭市| 河北省| 河源市| 历史| 中超| 临漳县| 紫云| 宣武区| 乌兰浩特市| 吐鲁番市|