自知其無知
          不懂,慢慢懂。
          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 ;
          }


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

          向服務(wù)器發(fā)送請求:(給它傳遞一個(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 方法來獲取資源,在請求的主題部分不需要傳遞任何參數(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 
          }
           

          這里將請求對象聲明為一個(gè)全局對象,這樣有利于保持事情的簡單,那如何同時(shí)發(fā)送多個(gè)請求。。
          待續(xù)。。。。
          posted on 2008-12-08 22:25 CopyHoo 閱讀(566) 評論(0)  編輯  收藏 所屬分類: Ajax
          主站蜘蛛池模板: 甘洛县| 静海县| 北海市| 东阿县| 荥阳市| 石柱| 吉安市| 陕西省| 渭源县| 米易县| 轮台县| 巴青县| 长宁区| 萍乡市| 宁陵县| 封开县| 当阳市| 莱州市| 涡阳县| 满洲里市| 崇仁县| 成都市| 沂源县| 嘉荫县| 沙湾县| 韩城市| 凤凰县| 霍邱县| 简阳市| 东至县| 宁陕县| 夏津县| 白沙| 垦利县| 新营市| 当涂县| 神农架林区| 喀喇沁旗| 那坡县| 太白县| 米林县|