原生AJAX基礎講解及相容處理

來源:互聯網
上載者:User

標籤:style   blog   http   color   java   使用   os   io   

原文:原生AJAX基礎講解及相容處理

  AJAX = Asynchronous JavaScript and XML (非同步JavaScript和XML)。

  AJAX不是新技術 ,但卻是熱門的技術。它可以在不重載(重新整理)整個頁面的情況下與伺服器進行資料互動並更新網頁模組。
  AJAX的優點有很多:可以局部重新整理、按需載入,這樣就減輕了伺服器的資料流量。並且在頁面更新的同時,使用者可以瀏覽器網頁的其它內容而不受影響,也減輕了結構負擔。AJAX也不是萬能的,在有以上優點的同時SEO也受到了影響。
  在學習AJAX之前,必須先有HTML/XHTML、CSS、JavaScript/DOM的基礎。
  AJAX與伺服器進行資料互動,必然涉及到伺服器端,與此同時也就涉及到了伺服器請求對象的建立(new XMLHttpRequest())、確認請求方式(open())、發送請求(send())以及響應請求(responseText)。
  建立對象:
    IE9+及其它瀏覽器支援使用new XMLHttpRequest()的建立對象方式,而IE8及以下則使用new ActiveXObject()的方式進行建立。
    看了網上許多人使用如下代碼進行相容:

1 try {2     xml = new ActiveXObject("Msxml2.XMLHTTP");3 } catch(e) {4     try {5         xml = new ActiveXObject("Microsoft.XMLHTTP");6     } catch(e1) {7         xml = new XMLHttpRequest();8     }9 }

    筆者用IE11調試功能測試IE10及以下不寫new ActiveXObject("Msxml2.XMLHTTP")也是沒問題的,於是在建立對象時可以使用代碼:
    var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  確認請求:
    xml.open(‘get‘, ‘url‘, true/false);
    第一個參數表示:string. 訪問方式,有兩具值:get/post,大部分的時候使用get
    第二個參數表示:string. 要已連線的服務器網址
    第三個參數表示:boolean. 表示是否需要非同步請求(true為發起非同步載入)
  發送請求:
    xml.send();
    如果需要發送資料則採用xml.send(str);
  響應資料:
    xml.onreadystatechange = function() {
      if (xml.readyState == 4 && xml.status == 200) {
        alert(xml.responseText);
      }
    }

  status返回連結的狀態,一般返回200與404,200表示成功返回,404表示未找到頁面。
  readyState有5個值,分別為:0、1、2、3、4。而每當值改變時都會觸發一次onreadystatechange。
  readyState的5個值含義分別為:

  • 0: 請求未初始化
  • 1: 伺服器串連已建立
  • 2: 請求已接收
  • 3: 請求處理中
  • 4: 請求已完成,且響應已就緒

  也就是當請求完成,並且找到頁面時,然後才擷取伺服器上的資料。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.