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);