也談Ajax技術

來源:互聯網
上載者:User
        時下流行的Ajax並不是新技術,它只是一些老技術的組合,這一點你可以從它的英文全稱上瞭解到,Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的縮寫,也即非同步JavaScript和XML。

        要瞭解Ajax的工作原理,下列技術必須掌握:

  • (1)HTML 用於建立 Web 表單並確定應用程式其他部分使用的欄位。
  • (2)JavaScript 代碼是運行 Ajax 應用程式的核心代碼,協助改進與伺服器應用程式的通訊。
  • (3)DHTML 或 Dynamic HTML,用於動態更新表單。我們將使用 divspan 和其他動態超文字標記語言 元素來標記 HTML。
  • (4)文件物件模型 DOM 用於(通過 JavaScript 代碼)處理 HTML 結構和(某些情況下)伺服器返回的 XML。
                1,Ajax中要用到的最主要的JavaScript對象是XMLHttpRequest對象,這個對象是一切應用Ajax技術編寫代碼的最基本對象,也是最重要的對象,不同的瀏覽器下建立該對象的方法是不一樣的,所以在做網頁開發的時候必須建立能在通用瀏覽器上啟動並執行XMLHttpRequest對象,下面是建立該對象的代碼<script language="javascript" type="text/javascript">
var request = false;
try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (othermicrosoft) {
    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
      request = false;
    }
  }
}
if (!request)
  alert("Error initializing XMLHttpRequest!");
</script>        2,建立對象後,需要開啟請求,一般採用get方式var phone = document.getElementById("phone").value;
var url = "/cgi-local/lookupCustomer.php?phone=" + escape(phone);
request.open("GET", url, true);        3,指定回調方法request.onreadystatechange = updatePage;        4,發送請求request.send(null);                5,回調方法,處理伺服器響應function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         var response = request.responseText.split("|");
         document.getElementById("order").value = response[0];
         document.getElementById("address").innerHTML = response[1].replace(/\n/g, "");
       } else
         alert("status is " + request.status);
     }
   }最後匯總一下上面寫的JavaScript代碼<script language="javascript" type="text/javascript">
   var request = false;
   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = false;
       }  
     }
   }
   if (!request)
     alert("Error initializing XMLHttpRequest!");

   function getCustomerInfo() {
     var phone = document.getElementById("phone").value;
     var url = "/cgi-local/lookupCustomer.php?phone=" + escape(phone);
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
   }

   function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         var response = request.responseText.split("|");
         document.getElementById("order").value = response[0];
         document.getElementById("address").innerHTML = response[1].replace(/\n/g, " ");
       } else
         alert("status is " + request.status);
     }
   }
</script>按照上述五個步驟,就可以實現ajax非同步傳輸的局部重新整理,非常簡單。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.