3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
AJAX全稱為Asynchronous JavaScript And XML直譯就是異步的JavaScript和XML。
通常當(dāng)JavaScript向服務(wù)器發(fā)送請(qǐng)求獲取數(shù)據(jù)時(shí),服務(wù)器會(huì)返回?cái)?shù)據(jù)。在傳統(tǒng)沒有使用AJAX的網(wǎng)頁中,需要刷新頁面使其重新加載。而AJAX可以使網(wǎng)頁在不重新加載頁面的情況下對(duì)網(wǎng)頁的局部進(jìn)行更新。
使用AJAX主要分三部分:
1、 創(chuàng)建請(qǐng)求的變量。
2、 為請(qǐng)求添加事件處理代碼。
3、 配置發(fā)送請(qǐng)求。
【AJAX舉例】
12345678910111213141516 | var myRequest; if (window.XMLHttpRequest) { myRequest = new XMLHttpRequest();} else if (window.ActiveXObject) { myRequest = new ActiveXObject( "Microsoft.XMLHTTP" ); } myRequest.onreadystatechange = function (){ console.log( "匿名函數(shù)被調(diào)用!" ); console.log(myRequest.readyState); if (myRequest.readyState === 4) { var p = document.createElement( "p" ); var t = document.createTextNode(myRequest.responseText); p.appendChild(t); document.getElementById( "mainContent" ).appendChild(p);}}; myRequest.open( 'GET' , 'simple.txt' , true ); myRequest.send( null ); |

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
AJAX核心是內(nèi)置對(duì)象XMLHttpRequest對(duì)象,通過這個(gè)對(duì)象發(fā)送請(qǐng)求到其它網(wǎng)頁,再返回一個(gè)值.
舉個(gè)例子:有一個(gè)網(wǎng)頁aa.htm
<html>
<body>
<script language="javascript">
var XHR;
function createXHR(){
if(window.XMLHttpRequest){
XHR=new XMLHttpRequest();
}else{
XHR=new ActiveXObject("Microsoft.XMLHTTP");
}
}
//先創(chuàng)建一個(gè)XMLHttpRequest對(duì)象
function showMsg(){
createXHR();
XHR.open("post","bb.htm");//設(shè)置一個(gè)請(qǐng)求,向bb.htm發(fā)送請(qǐng)求.
XHR.onreadystatechange=showMsgCallback;//設(shè)置回調(diào)函數(shù)
XHR.send(null);//不傳遞參數(shù)
}
function showMsgCallback(){
if(XHR.readyState==4){
if(XHR.status==200){
var text=XHR.responseText;//得到一個(gè)返回值(從bb.htm那里得到hello world)
document.getElementById("msg").innerHTML=text; //輸出hello world這句話
}
}
}
</script>
<input type="button" onclick="showMsg()" value="調(diào)用">
<span id="msg"></span>
</body>
</html>
bb.htm這個(gè)網(wǎng)頁只設(shè)置這一句話:
hello world
另外,補(bǔ)充一句:AJAX只能運(yùn)行在服務(wù)器,在JSP,PHP。。。中都可以運(yùn)行
添加回答
舉報(bào)