溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax如何實現異步交互

發布時間:2021-09-01 11:28:26 來源:億速云 閱讀:280 作者:小新 欄目:web開發

這篇文章主要介紹了Ajax如何實現異步交互,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

利用ajax實現異步交互無非4步:

1.創建ajax核心對象

2.與服務器建立連接

3.向服務器發送請求

4.接收服務器響應的數據

看似神秘的異步交互當明確這4步后,也許在大家腦海里已經有了初步的思路了

首先我們創建ajax的核心對象,由于瀏覽器的兼容問題我們在創建ajax核心對象的時候不得考慮其兼容問題,因為要想實現異步交互的后面步驟都基于第一步是否成功的創建了ajax核心對象.

function getXhr(){
// 聲明XMLHttpRequest對象
var xhr = null;
// 根據瀏覽器的不同情況進行創建
if(window.XMLHttpRequest){
// 表示除IE外的其他瀏覽器
xhr = new XMLHttpRequest();
}else{
// 表示IE瀏覽器
xhr = new ActiveXObject('Microsoft.XMLHttp');
}
return xhr;
}
// 創建核心對象
var xhr = getXhr();

通過上述代碼我們已經成功的創建了ajax核心對象,我們保存在變量xhr中,接下來提到的ajax核心對象都將以xhr代替.

第二步就是與服務器建立連接,通過ajax核心對象調用open(method,url,async)方法.

open方法的形參解釋:

method表示請求方式(get或post)

url表示請求的php的地址(注意當請求類型為get的時候,請求的數據將以問號跟隨url地址后面,下面的send方法中將傳入null值)

async是個布爾值,表示是否異步,默認為true.在最新規范中這一項已經不在需要填寫,因為官方認為使用ajax就是為了實現異步.

xhr.open("get","01.php?user=xianfeng");//這是get方式請求數據 
xhr.open("post","01.php");//這是以post方式請求數據

第三步我們將向服務器發送請求,利用ajax核心對象調用send方法

如果是post方式,請求的數據將以name=value形式放在send方法里發送給服務器,get方式直接傳入null值

xhr.send("user=xianfeng");//這是以post方式發送請求數據 
xhr.send(null);//這是以get方式

第四步接收服務器響應回來的數據,使用onreadystatechange事件監聽服務器的通信狀態.通過readyState屬性獲取服務器端當前通信狀態.status獲得狀態碼,利用responseText屬性接收服務器響應回來的數據(這里指text類型的字符串格式數據).后面再寫XML格式的數據和大名鼎鼎的json格式數據.

xhr.onreadystatechange = function(){
               // 保證服務器端響應的數據發送完畢,保證這次請求必須是成功的
   if(xhr.readyState == 4&&xhr.status == 200){
      // 接收服務器端的數據
      var data = xhr.responseText;
       // 測試
       console.log(data);
   } 
};

ps:Ajax簡單的異步交互

ajax簡單的異步交互,可以先從get方式開始說起

那么創建一個Ajax與服務器端的異步請求,需要完成三個

步驟1、XMLHttpRequest對象的創建

if(window.XMLHttpRequest){//針對IE7以上 以及標準瀏覽器
var xhr=new XMLHttoRequest();
}else if(window.ActiveXObject){
var xhr=new ActiveXObject("Microsoft.XMLHTTP");
}

步驟2、注冊回調函數

xhr.onreadystatechange=callback;
或者xhr.onreadystatechange=function(){
//codes here 
}

步驟3、設置連接信息

xhr.open("GET",url,true)//其中true表示為異步交互

步驟4、發送數據

xhr.send(null);

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Ajax如何實現異步交互”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女