溫馨提示×

溫馨提示×

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

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

Ajax+js實(shí)現(xiàn)異步交互的方法

發(fā)布時間:2021-04-23 11:03:53 來源:億速云 閱讀:218 作者:小新 欄目:web開發(fā)

小編給大家分享一下Ajax+js實(shí)現(xiàn)異步交互的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

JS是什么

JS是JavaScript的簡稱,它是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,主要用于web的開發(fā),可以給網(wǎng)站添加各種各樣的動態(tài)效果,讓網(wǎng)頁更加美觀。

利用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核心對象的時候不得考慮其兼容問題,因?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ù)據(jù)將以問號跟隨url地址后面,下面的send方法中將傳入null值)

async是個布爾值,表示是否異步,默認(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);
                 } 
             };

以上是“Ajax+js實(shí)現(xiàn)異步交互的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI