亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Ajax的使用四大詳細(xì)步驟

時間:2020-11-10 13:20:34 AJAX 我要投稿

Ajax的使用四大詳細(xì)步驟

  什么是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或IE6xhttp = 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" + 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 當(dāng)服務(wù)器準(zhǔn)備響應(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)的字符串?dāng)?shù)據(jù),使用responseXML屬性得到服務(wù)器響應(yīng)的XML數(shù)據(jù)。

  例子如下:

  document.getElementById("demo").innerHTML = xhttp.responseText;

  服務(wù)器響應(yīng)的XML數(shù)據(jù)需要使用XML對象進(jìn)行轉(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ù),當(dāng)發(fā)送請求到服務(wù)器,我們想要服務(wù)器響應(yīng)執(zhí)行一些功能就需要使用onreadystatechange函數(shù),每次xmlhttprequest對象的readyState發(fā)生改變都會觸發(fā)onreadystatechange函數(shù)。

  onreadystatechange屬性存儲一個當(dāng)readyState發(fā)生改變時自動被調(diào)用的函數(shù)。

  readyState屬性,XMLHttpRequest對象的狀態(tài),改變從0到4,0代表請求未被初始化,1代表服務(wù)器連接成功,2請求被服務(wù)器接收,3處理請求,4請求完成并且響應(yīng)準(zhǔn)備。

  status屬性,200表示成功響應(yīng),404表示頁面不存在。

  在onreadystatechange事件中,服務(wù)器響應(yīng)準(zhǔn)備的時候發(fā)生,當(dāng)readyState==4和status==200的時候服務(wù)器響應(yīng)準(zhǔn)備。

  例子:

  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.

  Change Content

  function loadDoc(url, cfunc) {var xhttp;xhttp=new XMLHttpRequest();xhttp.onreadystatechange = function() {if (xhttp.readyState == 4 && xhttp.status == 200) {cfunc(xhttp);}};xhttp.open("GET", url, true);xhttp.send();}function myFunction(xhttp) {document.getElementById("demo").innerHTML = xhttp.responseText;}