1. 程式人生 > >AJAX基本介紹

AJAX基本介紹

 Ajax概念

Ajax 是Web 開發一個流行的詞彙,全稱 Asynchronous JavaScript andXML,非同步的JavaScript和XML 。是幾種技術的強強聯合。

 Ajax如何工作

Ajax(即非同步 JavaScript 和 XML)是一種 Web 應用程式開發的手段,它採用客戶端指令碼與Web 伺服器交換資料。

 為什麼要學習Ajax

使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護資料。這使得Web應用程式更為迅捷地迴應使用者動作,並避免了在網路上傳送那些沒有改變過的資訊。


//相容所有的瀏覽器 建立XHR物件
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}



var xmlhttp=null;

xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200){
retnFunction(xmlhttp.responseText);
}
}

1.xmlhttp.readyState==4 && xmlhttp.status==200  所代表的意義


xmlhttp.readyState=0:請求未初始化(沒有呼叫send方法)
xmlhttp.readyState=1:伺服器連線已建立(socket已連線)
xmlhttp.readyState=2:請求已接收(獲取到了引數 沒有執行action方法)
xmlhttp.readyState=3:請求處理中(已經在執行action方法 未執行完)
xmlhttp.readyState=4:請求已完成,且響應已就緒(已經響應  並且能獲取到最終的資料)
xmlhttp.status==200:響應狀態  200表示成功



2.xmlhttp.open("GET","${pageContext.request.contextPath}/popo?foodname="+foodname,true)中true的含義


一個ajax執行緒是否執行完成  可以通過回撥函式xmlhttp.onreadystatechange  是否執行完成來判斷
非同步  多個執行緒同時執行 無法判斷 誰先執行  true
同步  一次只允許一個執行緒執行 false



3.get和post請求


get:xmlhttp.open("GET","${pageContext.request.contextPath}/popo?foodname="+foodname,true);
xmlhttp.send();

post:xmlhttp.open("POST","${pageContext.request.contextPath}/popo",true);
//charset=UTF-8  解決亂碼問題
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.send("foodname="+foodname);

注:有put delete

xmlhttp.send("_method=put&foodname="+foodname);

xmlhttp.send("_method=delete&foodname="+foodname);