十分鐘了解ajax

ajax其實(shí)是實(shí)現(xiàn)異步刷新,他的用處是在不重新載入頁(yè)面的情況下,與與服務(wù)器交換數(shù)據(jù)并更新網(wǎng)頁(yè)。
看下面的例子,不著急看懂,后面我會(huì)詳細(xì)解釋

<span>輸入賬號(hào)</span>
<input id="name" name="name" onkeyup="check()" type="text">  
<span id="checkResult"></span>
<script>
var xmlhttp;
function check(){
var name =document.getElementById('name').value;
var url="/study/checkName.jsp?name="+name;

xmlhttp =new XMLHttpRequest(); 
  xmlhttp.onreadystatechange=checkResult; //響應(yīng)函數(shù)
  xmlhttp.open("GET",url,true);   //設(shè)置訪問(wèn)的頁(yè)面
  xmlhttp.send(null);  //執(zhí)行訪問(wèn)

function checkResult(){
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    document.getElementById('checkResult').innerHTML=xmlhttp.responseText;
  
}
</script>

第一步:ajax請(qǐng)求的示意圖如下,大概了解是怎么走的:


第二步:創(chuàng)建XMLHttpRequest(XHR)
XHR是一個(gè)javascript對(duì)象,他是在幕后通過(guò)一個(gè)小線程與服務(wù)器進(jìn)行數(shù)據(jù)交互的,從而實(shí)現(xiàn)無(wú)刷新效果。

<script>
var xmlhttp = new XMLHttpRequest();
documen.write(xmlhttp);
</script>

結(jié)果:

[object XMLHttpRequest]

第三步:設(shè)置響應(yīng)函數(shù)
XHR對(duì)象的作用是和服務(wù)器進(jìn)行交互,所以不僅發(fā)送消息給服務(wù)器,也接受服務(wù)器返回的響應(yīng)。當(dāng)從服務(wù)器返回響應(yīng)時(shí)我們想做點(diǎn)什么該怎么辦?
通過(guò)xmlhttp.onreadystatechange=checkResult 就可以指定用checkResult 函數(shù)進(jìn)行處理。

第四步:設(shè)置并發(fā)出請(qǐng)求
通過(guò)open函數(shù)設(shè)置幕后的小線程,將要訪問(wèn)的url。在本例中就是 /study/checkName.jsp

xmlhttp.open('GET',url,true);//規(guī)定請(qǐng)求的類型、URL 以及是否異步處理請(qǐng)求。method:請(qǐng)求的類型;GET 或 POST url:文件在服務(wù)器上的位置 async:true(異步)或 false(同步)

通過(guò)send函數(shù)進(jìn)行實(shí)際的訪問(wèn)

xmlhttp.send(null);//send(string),將請(qǐng)求發(fā)送到服務(wù)器。

第五步:處理響應(yīng)信息
在checkResult 函數(shù)中處理響應(yīng)

function checkResult(){
  if(xmlhttp.readyStats==4 && xmlhttp.status ==200)
   document.getElementById('checkResult').innerHTML=xmlhttp.responseText;
}

xmlhttp.readyState 4 表示請(qǐng)求已完成
xmlhttp.status 200 表示響應(yīng)成功
xmlhttp.responseText; 用于獲取服務(wù)端傳回來(lái)的文本
document.getElementById('checkResult').innerHTML 設(shè)置span的內(nèi)容為服務(wù)端傳遞回來(lái)的文本

再返回來(lái)看第一段代碼,是不是就理解了呢

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容