1.ajax介紹
? ? ? ? Ajax(asynchronous JavaScript and XML):異步的JavaScript和xml态鳖,是一種異步請(qǐng)求數(shù)據(jù)的web開發(fā)技術(shù)在孝,在不重新加載整個(gè)頁面的情況下,可以與服務(wù)器交換數(shù)據(jù)并更新網(wǎng)頁部分內(nèi)容怠硼。Ajax目的是提高用戶體驗(yàn)鬼贱,較少的網(wǎng)絡(luò)數(shù)據(jù)的傳輸量。
2.ajax原理
(1)瀏覽器創(chuàng)建一個(gè)XMLHttpRequest對(duì)象香璃,然后發(fā)送對(duì)象去服務(wù)器請(qǐng)求數(shù)據(jù)这难;
(2)服務(wù)器接受XMLHttpRequest并返回?cái)?shù)據(jù);
(3)瀏覽器接受返回?cái)?shù)據(jù)并渲染頁面葡秒;
3.ajax是基于現(xiàn)有的internet標(biāo)準(zhǔn)
a.XMLHttpRequest 對(duì)象 (異步的與服務(wù)器交換數(shù)據(jù))
b.JavaScript/DOM (信息顯示/交互)
c.CSS (給數(shù)據(jù)定義樣式)
d.XML (作為轉(zhuǎn)換數(shù)據(jù)的格式)
注意: AJAX應(yīng)用程序與瀏覽器和平臺(tái)無關(guān)的姻乓!
4.原生js的ajax使用
//創(chuàng)建XMLHttpRequest對(duì)象
var xmlhttp=null;?
if (window.XMLHttpRequest)?
{// 兼容 IE7+, Firefox, Chrome, Opera, Safari?
? ? ?xmlhttp=new XMLHttpRequest();?
} else{// 兼容 IE6, IE5
? ? xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");?
}
//向服務(wù)器發(fā)送請(qǐng)求
xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
xmlhttp.send();
注意:xmlhttp.open(method,url,async);
? ? ? ? ? ?xmlhttp.send();
Method:請(qǐng)求的方式,get或者post
Url:請(qǐng)求路徑
Async:是否異步眯牧,true(異步)false(同步)
但是當(dāng)請(qǐng)求方式為post時(shí)要設(shè)置請(qǐng)求頭的格式蹋岩,舉例:
xmlhttp.open("POST","test.html",true);?
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");?
xmlhttp.send(xxxx);? //post請(qǐng)求參數(shù)放在send里
//瀏覽器對(duì)服務(wù)器響應(yīng)進(jìn)行處理
xmlhttp.onreadystatechange=function()
{
? ? if (xmlhttp.readyState==4 && xmlhttp.status==200){
? ? ? ? document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
? ? ?}
}
onreadystatechange存儲(chǔ)函數(shù),當(dāng)readyState屬性改變時(shí)学少,調(diào)用該函數(shù)剪个。
readyState:存儲(chǔ)XMLHttpRequest狀態(tài)。
? ? 0:請(qǐng)求未初始化版确;
? ? 1:服務(wù)器連接已建立
? ? 2:請(qǐng)求已接受
? ? 3:請(qǐng)求處理中
? ? 4:請(qǐng)求已完成扣囊,且響應(yīng)就緒
Status:常用狀態(tài)碼
? ? 200:’ok’
? ? 404:未找到頁面
(根據(jù)菜鳥教程整理)