AJAX是什么
AJAX,Asynchronous JavaScrpt and XML车份,異步的JS和XML谋减。
不是新的編程語言,而是一種基于現(xiàn)有標(biāo)準(zhǔn)的新方法扫沼。
這種方法可以在不重新加載整個頁面的條件下出爹,完成與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁內(nèi)容。
簡單的來說缎除,這個方法可以用來創(chuàng)建快速動態(tài)網(wǎng)頁严就。
AJAX應(yīng)用程序與瀏覽器及平臺無關(guān)。
先導(dǎo)知識:HTML和XML器罐、JS基礎(chǔ)梢为、DOM。
(小聲咕嘰嘰,AJAX原來不念阿賈克斯铸董,念欸賈科斯祟印。)
工作原理
- 創(chuàng)建一個XMLHttpRequest對象;
- 瀏覽器發(fā)送Http請求至服務(wù)器袒炉;
- 服務(wù)器返回響應(yīng)數(shù)據(jù)旁理;
- 瀏覽器使用JS接收數(shù)據(jù)并更新頁面內(nèi)容樊零。
創(chuàng)建XMLHttpRequest對象
它用于在后臺與服務(wù)器交換數(shù)據(jù)我磁。
IE5和IE6使用ActiveX對象。
語法:
variable = new XMLHttpRequest();
variable = new ActiveXObject("Microsoft.XMLHTTP");
向服務(wù)器發(fā)送請求
語法:
xmlhttp.open(method,url,async);
xmlhttp.send(string);
method
請求的類型驻襟,GET or POST夺艰;
url
:文件在服務(wù)器上的位置;
async
:異步(true)或同步(false)沉衣;
string
:僅在POST請求時填寫該參數(shù)郁副;
如果使用AJAX的話,async參數(shù)必須設(shè)置為true豌习。
服務(wù)器響應(yīng)
獲取服務(wù)器響應(yīng)存谎,語法:
variable = xmlhttp.responseText;
獲得字符串形式的相應(yīng)數(shù)據(jù)。
variable = xmlhttp.responseXML;
獲得XML形式的相應(yīng)數(shù)據(jù)肥隆。
XMLHttpRequest對象屬性
onreadystatechange
存儲函數(shù)/函數(shù)名既荚,當(dāng)readyState屬性改變時,就會調(diào)用該函數(shù)栋艳。
readyState
存儲XMLHttpRequest的狀態(tài)恰聘。
- 0:請求未初始化
- 1:服務(wù)器連接已建立
- 3:請求已接收
- 4:請求處理中
- 5:請求完成,且響應(yīng)已就緒
status
返回頁面狀態(tài)吸占。
按需尋求度娘即可晴叨。
實例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<script type="text/javascript">
function demo(){
var xmlhttp;
//創(chuàng)建XMLHttpRequest對象
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
}else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("myDiv").innerHTML=xmlhttp.responseText
}
}
xmlhttp.open("GET","demo1.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><p>使用 AJAX 修改文本內(nèi)容</p></div>
<button type="button" onclick="demo()">修改</button>
</body>
</html>
運(yùn)行結(jié)果:
AJAX在實際應(yīng)用時,與數(shù)據(jù)庫等相結(jié)合都是可以的矾屯,基本結(jié)構(gòu)變化不大兼蕊。