1、ajax簡介:
ajax=asynchrinous javascript and xml(異步j(luò)s和xml)
ajax不是新的編程語言悼嫉,是一種現(xiàn)有標(biāo)準(zhǔn)的新方法。
ajax是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下论皆。
2、什么事Ajax猾漫?
ajax=異步j(luò)s和XML点晴。
ajax是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。
通過在后臺與服務(wù)器進(jìn)行少量的數(shù)據(jù)交換悯周,AJax可以使網(wǎng)頁實(shí)現(xiàn)異步更新粒督。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對頁面的某部分進(jìn)行更新禽翼。
傳統(tǒng)網(wǎng)頁(不適用ajax)如果要更新內(nèi)容必須加載整個頁面屠橄。
3.AJAX是基于現(xiàn)有的因特標(biāo)準(zhǔn)
AJAX是基于現(xiàn)有的internet標(biāo)準(zhǔn)萨惑,并且聯(lián)合它們:
XMLHttpRequest對象(異步的與服務(wù)器交換數(shù)據(jù))
js/dom(信息顯示、交互)
css(給數(shù)據(jù)定義樣式)
xml(作為轉(zhuǎn)換數(shù)據(jù)的格式)
ajax應(yīng)用程序與瀏覽器和平臺無關(guān)仇矾!
4庸蔼、在2005年,谷歌通過GOOGLE SUGGEST使ajax流行起來贮匕。
使AJAX傳造出動態(tài)性極強(qiáng)的web界面
5姐仅、AJAX-創(chuàng)建XMLHttpRequest對象
xmlhttprequest是ajax的基礎(chǔ)。所有現(xiàn)代瀏覽器均支持(IE5刻盐,6使用ActiveXObject).Xhr用于后臺與服務(wù)器交換數(shù)據(jù)掏膏,這意味著可以在不重新加載整個頁面的情況下,對網(wǎng)頁的某部分進(jìn)行更新敦锌。
6馒疹、AJAX-向服務(wù)器發(fā)送請求
XHR對象用于和服務(wù)器交換數(shù)據(jù)
如果需要請求發(fā)送到服務(wù)器,我們使用XMLHttpRequest對象的open()和send()方法:
xmlhttp.open("GET","AJAX_INFO.txt"乙墙,true);
xmlhttp.send();
open("method","url","async");
規(guī)定請求類型颖变、url以及是非異步處理
send(string)將請求發(fā)送到服務(wù)器,string:僅用于post請求
7听想、get相對于post來說更加快腥刹,大部分情況都能用,向服務(wù)器發(fā)送大量數(shù)據(jù)使用post 汉买。post相對于get來說要更加穩(wěn)定可靠
9.AJAX - 服務(wù)器 響應(yīng)
如需獲得來自服務(wù)器的響應(yīng)衔峰,請使用XMLHttpRequest 對象的 responseText(獲得字符串形式的響應(yīng)數(shù)據(jù)。) 或 responseXML 屬性蛙粘。(獲得 XML形式的響應(yīng)數(shù)據(jù)垫卤。)
responseXML 屬性
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++) {
txt=txt + x[i].childNodes[0].nodeValue + "
";
}
document.getElementById("myDiv").innerHTML=txt;
10.AJAX - onreadystatechange 事件
onreadystatechange 事件
當(dāng)請求被發(fā)送到服務(wù)器時,我們需要執(zhí)行一些基于響應(yīng)的任務(wù)出牧。
每當(dāng) readyState改變時穴肘,就會觸發(fā)onreadystatechange事件。
readyState屬性存有 XMLHttpRequest 的狀態(tài)信息崔列。
readyState:
存有 XMLHttpRequest 的狀態(tài)梢褐。從 0 到 4 發(fā)生變化。
0: 請求未初始化
1: 服務(wù)器連接已建立
2: 請求已接收
3: 請求處理中
4: 請求已完成赵讯,且響應(yīng)已就緒
status:
200: "OK"
404: 未找到頁面
<script type="text/javascript" >
function CreateXMLHTTP() {
var objXmlHttp;
// 檢測MSXMLHTTP版本盈咳,為了兼容IE各個版本
var activeKey = new Array("MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
if (window.ActiveXObject) {
for (var i = 0; i < activeKey.length; i++) {
try {
objXmlHttp = new ActiveXObject(activeKey[i]);
if (objXmlHttp != null)
return objXmlHttp;
}
catch (error) {
throw new Error("您的瀏覽器版本過低,請更新瀏覽器");
}
}
}
else if (window.XMLHttpRequest) {
objXmlHttp = new XMLHttpRequest();
}
return objXmlHttp;
}
</script>
post方式:
get方式: