這篇文章主要為大家展示了“使用Ajax的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“使用Ajax的示例分析”這篇文章吧。
創(chuàng)新互聯(lián)企業(yè)建站,10多年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都網(wǎng)站設(shè)計、做網(wǎng)站中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。
什么是ajax?
ajax(異步j(luò)avascript xml) 能夠刷新局部網(wǎng)頁數(shù)據(jù)而不是重新加載整個網(wǎng)頁。
如何使用ajax?
第一步,創(chuàng)建xmlhttprequest對象,var xmlhttp =new XMLHttpRequest();XMLHttpRequest對象用來和服務(wù)器交換數(shù)據(jù)。
var xhttp; if (window.XMLHttpRequest) { //現(xiàn)代主流瀏覽器 xhttp = new XMLHttpRequest(); } else { // 針對瀏覽器,比如IE5或IE6 xhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
第二步,使用xmlhttprequest對象的open()和send()方法發(fā)送資源請求給服務(wù)器。
xmlhttp.open(method,url,async) method包括get 和post,url主要是文件或資源的路徑,async參數(shù)為true(代表異步)或者false(代表同步)
xhttp.send();使用get方法發(fā)送請求到服務(wù)器。
xhttp.send(string);使用post方法發(fā)送請求到服務(wù)器。
post 發(fā)送請求什么時候能夠使用呢?
(1)更新一個文件或者數(shù)據(jù)庫的時候。
(2)發(fā)送大量數(shù)據(jù)到服務(wù)器,因為post請求沒有字符限制。
(3)發(fā)送用戶輸入的加密數(shù)據(jù)。
get例子:
xhttp.open("GET", "ajax_info.txt", true); xhttp.open("GET", "index.html", true); xhttp.open("GET", "demo_get.asp?t=" + Math.random(), true);xhttp.send();
post例子
xhttp.open("POST", "demo_post.asp", true); xhttp.send();
post表單數(shù)據(jù)需要使用xmlhttprequest對象的setRequestHeader方法增加一個HTTP頭。
post表單例子
xhttp.open("POST", "ajax_test.aspx", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send("fname=Henry&lname=Ford");
async=true 當服務(wù)器準備響應(yīng)時將執(zhí)行onreadystatechange函數(shù)。
xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { document.getElementById("demo").innerHTML = xhttp.responseText; } }; xhttp.open("GET", "index.aspx", true); xhttp.send();
asyn=false 則將不需要寫onreadystatechange函數(shù),直接在send后面寫上執(zhí)行代碼。
xhttp.open("GET", "index.aspx", false); xhttp.send(); document.getElementById("demo").innerHTML = xhttp.responseText;
第三步,使用xmlhttprequest對象的responseText或responseXML屬性獲得服務(wù)器的響應(yīng)。
使用responseText屬性得到服務(wù)器響應(yīng)的字符串數(shù)據(jù),使用responseXML屬性得到服務(wù)器響應(yīng)的XML數(shù)據(jù)。
例子如下:
document.getElementById("demo").innerHTML = xhttp.responseText;
服務(wù)器響應(yīng)的XML數(shù)據(jù)需要使用XML對象進行轉(zhuǎn)換。
例子:
xmlDoc = xhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "
"; } document.getElementById("demo").innerHTML = txt;
第四步,onreadystatechange函數(shù),當發(fā)送請求到服務(wù)器,我們想要服務(wù)器響應(yīng)執(zhí)行一些功能就需要使用onreadystatechange函數(shù),每次xmlhttprequest對象的readyState發(fā)生改變都會觸發(fā)onreadystatechange函數(shù)。
onreadystatechange屬性存儲一個當readyState發(fā)生改變時自動被調(diào)用的函數(shù)。
readyState屬性,XMLHttpRequest對象的狀態(tài),改變從0到4,0代表請求未被初始化,1代表服務(wù)器連接成功,2請求被服務(wù)器接收,3處理請求,4請求完成并且響應(yīng)準備。
status屬性,200表示成功響應(yīng),404表示頁面不存在。
在onreadystatechange事件中,服務(wù)器響應(yīng)準備的時候發(fā)生,當readyState==4和status==200的時候服務(wù)器響應(yīng)準備。
例子:
function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { document.getElementById("demo").innerHTML = xhttp.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); } //函數(shù)作為參數(shù)調(diào)用Let AJAX change this text.
以上是“使用Ajax的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!