[ajax 學習筆記] ajax初試

來源:互聯網
上載者:User

標籤:style   http   java   os   io   資料   for   cti   

ajax全稱是:asynchronous javasctipt and xml。

1.為什麼需要ajax?

一般web程式與伺服器的互動是:頁面發送請求等待伺服器處理,伺服器處理資料,使用者頁面重新整理整個頁面,從而完成了一次互動。

如果用這種同步方式進行多次這種頁面與伺服器的互動,使用者將會需要很多時間去等待伺服器處理。

ajax非同步處理的思想是:當頁面發送請求後,交給伺服器處理,伺服器處理的同時,頁面無須等待可以進行其他的操作,當伺服器處理完成後,在當前頁面顯示結果,無須重新整理整個頁面。

2.ajax的簡單實現

實現ajax需要用到javascript的XMLHttpRequest對象。

實現過程

1)建立對象(不同瀏覽器有不同的建立方法,一般需要考慮ie和非ie瀏覽器)

        ie瀏覽器要用到ActiveXObject。

        非ie瀏覽器可直接建立XMLHttpRequest對象執行個體。

2)發送請求。

        發送請求前需要先建立一個與伺服器的串連。它需要的參數有發送類型、串連的url、非同步串連狀態值等。

                > 發送類型:GET/POST等。

                > url:串連地址 + ? + 傳送的值 (+ & + 傳送的值..)   [這裡是用的get方式]

                > 非同步串連狀態值:true / false。預設為true。true表示非同步串連。

        在發送請求前還要建立一個返回函數,它是用來指定伺服器響應後要執行的內容。

        發送請求。

3)伺服器響應函數

3.一個簡單一實例

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title><script>//var xmlHttp = new XMLHttpRequest();/*建立XMLHttpRequest對象*/var xmlHttp = false;/*@cc_on @*/  //ie條件編譯/*@if (@_javascript_version >= 5)try{xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}catch(e2){xmlHttp = false;}@end @*/if(!xmlHttp && typeof XMLHttpRequest != 'undefined'){xmlHttp = new XMLHttpRequest();}function callServer(){//擷取name和password值var name = document.getElementById("name").value;var password = document.getElementById("password").value;//判斷name和password是否為空白if((name == "null") || (name == "")) return ;if(password == "null" || password == "") return ;//建立要串連的urlvar url = "check.php?name=" + escape(name) + "&password" + escape(password);//建立一個伺服器的串連xmlHttp.open("GET", url, true);//建立伺服器完成後啟動並執行函數xmlHttp.onreadystatechange = updatePage;//發送請求xmlHttp.send(null);}function updatePage(){if(xmlHttp.readyState == 4){   //http就緒狀態if(xmlHttp.status == 200){    //判斷http狀態代碼<span style="white-space:pre"></span>//處理伺服器響應var response = xmlHttp.responseText;document.getElementById("ajax-result").value = response;}else if(xmlHttp.status == 404){alert("Request url does not exist!");}else{alert("ERROR:status code is" + xmlHttp.status);}}}</script></head><body><div id="form"><form method="get">name:<input type="text" id="name" onchange="callServer()"/><br>passwiord:<input type="text" id="password" onchange="callServer()"><br>result:<input type="text" id="ajax-result"/></form></div></body></html>

相關文章

聯繫我們

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