<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    捌零肆玖◎潑猴

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    [AJAX筆記]XMLHttpRequest

    摘要:AJAX實際上由4種技術構成:JavaScript、CSS、DOM、XMLHttpRequest 前三種技術都是傳統web應用中常用的技術,只有XMLHttpRequst在傳統web中的應用不是很多,所以就來對XMLHttpRequst做個了解

    首先XMLHttpRequest不是web標準,而是大部分主流瀏覽器都支持的一種擴展技術。它被認為是一種異步調用的實現技術,因為它本來是被設計在后臺取數據用的。在IE中它被作為一個ActiveX控件提供,而其他一些瀏覽器都提供一些本地API以供調用。
    下面是一些關于XMLHttpRequest的基本方法:

    1、獲取得一個XMLHttpRequest對象:

    function getXMLHttpRequest() {
      
    var xRequest = null;
      
    if (window.XMLHttpRequest) {
        xRequest 
    = new XMLHttpRequest();
      }
     else if (typeof ActiveObject !=  "undefined"{
        xRequest 
    = new ActiveXObject("Microsoft.XMLHTTP");
      }

      
    return xRequest;
    }

    2、向服務器發送XMLHttpRequest:

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

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

    }

    3、使用回調方法來監測XMLHttpRequest對象的狀態
    XMLHttpRequest使用屬性readyState來表示它的狀態
      0 = 未初始化
      1 = 讀取中
      2 = 已讀取
      3 = 交互中
      4 = 完成
    在事件驅動開發中我們經常使用回調技術,比如UI設計中的對按鍵的響應等等。我們可以使用對XMLHttpRequest對象的onreadystatechange屬性來設置監視XMLHttpRequest對象的狀態的回調方法:

    function sendRequest(url, params, HttpMethod) {
      
    if (!HttpMethod){
        HttpMethod 
    = "POST";  
      }
      
      
    var req = getXMLHttpRequest();
      
    if (req) {
        req.onreadystatechange 
    = onReadStateChage;
        req.open(HttpMethod, url, 
    true);    
        req.setRequestHeader(
    "Content-Type""application/x-www-form-urlencoded");    
        req.send(params);  
      }

    }


    function onReadyStateChange()
      
    //
    }


    4、完整的例子

    <html>
      
    <head>
      
    <script language="JavaScript">
        
    var req = null;
        
    var infos = new Array("init""loading""loaded""running""finished");
        
    var console = null;
        
        
    function initXMLHttpRequest() {
          
    if (req == null{
            
    if (window.XMLHttpRequest) {
              req 
    = new XMLHttpRequest();
            }

            
    else if (typeof ActiveObject !=  "undefined"{
              req 
    = new ActiveXObject("Microsoft.XMLHTTP");    
            }
      
          }

        }

        
        
    function sendRequest(url) {
          
    if (req == null{
            initXMLHttpRequest();  
          }
     
          
          
    if (req) {
            req.onreadystatechange 
    = onReadyStateChange;
            req.open(
    "GET", url, true);
            req.setRequestHeader(
    "Content-Type""application/x-www-form-urlencoded");
            req.send(
    null);  
          }

        }

        
        
    function onReadyStateChange(){  
          
    if (console == null{
            console 
    = document.getElementById('console');  
          }

          
          
    var state = req.readyState;
          
    var txt;  
          
    if (state == 4{
            
    if (!req.status == 200{
              txt 
    = "response:" + req.status;    
            }
     else {
              txt 
    = "response:" + req.responseText;
            }
      
          }
     else {    
            txt 
    = infos[state];  
          }

          
          
    var newline = document.createElement("div");
          newline.appendChild(document.createTextNode(txt));  
          console.appendChild(newline); 
        }

      
    </script>
      
    </head>
      
    <body>
        
    <div id="console"></div>
        
    <input type="button" onClick="sendRequest('ajax_test.txt')" value="Send Request"/>
      
    </body>
    </html>


    將上面的代碼保存為ajax_text.html文檔中,然后在同一路徑放一個ajax_test.txt,在這個文本文件寫下一行文字,用瀏覽器打開 ajax_text.html,點擊"Send Request"看看發生了什么?
    BTW 我只在Firefox中測試過,因為我用的是Linux

    學習參考資料:
    《AJAX in Action》
    AJAX開發簡略
    AJAX開發簡略續一

    posted on 2005-11-23 09:40 Max Wang 閱讀(1348) 評論(6)  編輯  收藏 所屬分類: Web技術

    評論

    # re: [AJAX筆記]XMLHttpRequest 2005-11-24 09:21 emu

    >>只有XMLHttpRequst是傳統web應用中不曾使用過得
    其實也是個很傳統的技術了。  回復  更多評論   

    # re: [AJAX筆記]XMLHttpRequest 2005-11-24 22:07 Max Wang

    呵呵,謝了,趕快改過了,不要誤導了大家  回復  更多評論   

    # re: [AJAX筆記]XMLHttpRequest 2005-11-24 22:31 Max Wang

    格式亂了,等回公司在windows下面再調吧,firefox下面好像是不行阿!  回復  更多評論   

    # re: [AJAX筆記]XMLHttpRequest 2005-11-25 09:49 chenhua

    windows下好像不行嗎  回復  更多評論   

    # re: [AJAX筆記]XMLHttpRequest 2005-11-25 09:57 Max Wang

    家里用的是Linux,公司才有Windows  回復  更多評論   

    # re: [AJAX筆記]XMLHttpRequest 2005-12-17 11:00 blue1018

    function initXMLHttpRequest() {
    if (req == null) {
    if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    }
    else if (typeof ActiveObject != "undefined") {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    }


    這個函數在wxp ie6 下不能正確的執行  回復  更多評論   


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲女人18毛片水真多| 国产一级一片免费播放| 99在线免费观看视频| 日本免费高清视频| 一级毛片aaaaaa免费看| 无码少妇精品一区二区免费动态| 精品视频在线免费观看| 先锋影音资源片午夜在线观看视频免费播放 | 日本免费一区二区三区| 一级毛片免费毛片一级毛片免费| 97青青草原国产免费观看| 在线美女免费观看网站h| 亚洲成av人片不卡无码久久| 色吊丝永久在线观看最新免费| 日韩视频在线免费观看| 可以免费观看一级毛片黄a| 亚洲av无码国产精品色在线看不卡| 亚洲AV中文无码乱人伦在线视色| 亚洲国产免费综合| 亚洲中文字幕无码久久综合网| 国产aⅴ无码专区亚洲av| 77777_亚洲午夜久久多人| 亚洲欧洲自拍拍偷综合| 亚洲国产精品免费观看| 爱情岛论坛亚洲品质自拍视频网站 | 国产v亚洲v天堂无码网站| 91天堂素人精品系列全集亚洲| 亚洲中文字幕无码av在线| 亚洲精品日韩一区二区小说| 全部一级一级毛片免费看| 花蝴蝶免费视频在线观看高清版 | 最近中文字幕免费mv视频7| 免费中文字幕一级毛片| 亚洲乱码中文字幕综合| 亚洲综合视频在线观看| 亚洲色无码国产精品网站可下载| 免费人成视频在线播放| 免费成人在线电影| 成全视频在线观看免费高清动漫视频下载| 精品免费久久久久久成人影院| av在线亚洲欧洲日产一区二区|