這篇文章主要介紹了Ajax如何實(shí)現(xiàn)異步交互,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),紅崗網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:紅崗等地區(qū)。紅崗做網(wǎng)站價(jià)格咨詢:028-86922220
利用ajax實(shí)現(xiàn)異步交互無非4步:
1.創(chuàng)建ajax核心對象
2.與服務(wù)器建立連接
3.向服務(wù)器發(fā)送請求
4.接收服務(wù)器響應(yīng)的數(shù)據(jù)
看似神秘的異步交互當(dāng)明確這4步后,也許在大家腦海里已經(jīng)有了初步的思路了
首先我們創(chuàng)建ajax的核心對象,由于瀏覽器的兼容問題我們在創(chuàng)建ajax核心對象的時(shí)候不得考慮其兼容問題,因?yàn)橐雽?shí)現(xiàn)異步交互的后面步驟都基于第一步是否成功的創(chuàng)建了ajax核心對象.
function getXhr(){ // 聲明XMLHttpRequest對象 var xhr = null; // 根據(jù)瀏覽器的不同情況進(jìn)行創(chuàng)建 if(window.XMLHttpRequest){ // 表示除IE外的其他瀏覽器 xhr = new XMLHttpRequest(); }else{ // 表示IE瀏覽器 xhr = new ActiveXObject('Microsoft.XMLHttp'); } return xhr; } // 創(chuàng)建核心對象 var xhr = getXhr();
通過上述代碼我們已經(jīng)成功的創(chuàng)建了ajax核心對象,我們保存在變量xhr中,接下來提到的ajax核心對象都將以xhr代替.
第二步就是與服務(wù)器建立連接,通過ajax核心對象調(diào)用open(method,url,async)方法.
open方法的形參解釋:
method表示請求方式(get或post)
url表示請求的php的地址(注意當(dāng)請求類型為get的時(shí)候,請求的數(shù)據(jù)將以問號跟隨url地址后面,下面的send方法中將傳入null值)
async是個(gè)布爾值,表示是否異步,默認(rèn)為true.在最新規(guī)范中這一項(xiàng)已經(jīng)不在需要填寫,因?yàn)楣俜秸J(rèn)為使用ajax就是為了實(shí)現(xiàn)異步.
xhr.open("get","01.php?user=xianfeng");//這是get方式請求數(shù)據(jù) xhr.open("post","01.php");//這是以post方式請求數(shù)據(jù)
第三步我們將向服務(wù)器發(fā)送請求,利用ajax核心對象調(diào)用send方法
如果是post方式,請求的數(shù)據(jù)將以name=value形式放在send方法里發(fā)送給服務(wù)器,get方式直接傳入null值
xhr.send("user=xianfeng");//這是以post方式發(fā)送請求數(shù)據(jù) xhr.send(null);//這是以get方式
第四步接收服務(wù)器響應(yīng)回來的數(shù)據(jù),使用onreadystatechange事件監(jiān)聽服務(wù)器的通信狀態(tài).通過readyState屬性獲取服務(wù)器端當(dāng)前通信狀態(tài).status獲得狀態(tài)碼,利用responseText屬性接收服務(wù)器響應(yīng)回來的數(shù)據(jù)(這里指text類型的字符串格式數(shù)據(jù)).后面再寫XML格式的數(shù)據(jù)和大名鼎鼎的json格式數(shù)據(jù).
xhr.onreadystatechange = function(){ // 保證服務(wù)器端響應(yīng)的數(shù)據(jù)發(fā)送完畢,保證這次請求必須是成功的 if(xhr.readyState == 4&&xhr.status == 200){ // 接收服務(wù)器端的數(shù)據(jù) var data = xhr.responseText; // 測試 console.log(data); } };
ps:Ajax簡單的異步交互
ajax簡單的異步交互,可以先從get方式開始說起
那么創(chuàng)建一個(gè)Ajax與服務(wù)器端的異步請求,需要完成三個(gè)
步驟1、XMLHttpRequest對象的創(chuàng)建
if(window.XMLHttpRequest){//針對IE7以上 以及標(biāo)準(zhǔn)瀏覽器 var xhr=new XMLHttoRequest(); }else if(window.ActiveXObject){ var xhr=new ActiveXObject("Microsoft.XMLHTTP"); }
步驟2、注冊回調(diào)函數(shù)
xhr.onreadystatechange=callback; 或者xhr.onreadystatechange=function(){ //codes here }
步驟3、設(shè)置連接信息
xhr.open("GET",url,true)//其中true表示為異步交互
步驟4、發(fā)送數(shù)據(jù)
xhr.send(null);
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Ajax如何實(shí)現(xiàn)異步交互”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
當(dāng)前題目:Ajax如何實(shí)現(xiàn)異步交互
當(dāng)前URL:http://jinyejixie.com/article40/pgidho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、搜索引擎優(yōu)化、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)