亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

AJAX 代表異步 JavaScript 和 XML。它是一組用于創(chuàng)建交互式 Web 應(yīng)用程序的 Web 開發(fā)技術(shù)。 AJAX 允許網(wǎng)頁與服務(wù)器通信,而無需重新加載頁面。

就緒狀態(tài)是處理 AJAX 請求的重要部分。請求的就緒狀態(tài)向服務(wù)器指示請求的狀態(tài),并允許客戶端跟蹤請求的進度。

下面我們詳細介紹了 AJAX 的不同就緒狀態(tài)。

未發(fā)送狀態(tài)(0)

這是 AJAX 的第一個就緒狀態(tài)。它用整數(shù) 0 表示。當(dāng)使用 AJAX 請求時,請求處于“未發(fā)送”狀態(tài),直到調(diào)用 send() 方法為止。這意味著請求還沒有發(fā)送到服務(wù)器,說明請求還需要發(fā)送。此狀態(tài)也稱為 XMLHttpRequest.UNSENT。

語法

http.onreadystatechange = function () {
   if (this.readyState == 0) {
      
      //put your code here
      console.log('This is UNSET state')
   }
}

登錄后復(fù)制

打開狀態(tài)(1)

這是 AJAX 的第二個就緒狀態(tài)。用整數(shù)1表示。AJAX請求的打開狀態(tài)是當(dāng)請求發(fā)送到服務(wù)器,但尚未收到響應(yīng)時。這通常是 AJAX 請求周期的第一步,通常由用戶操作(例如按鈕單擊或表單提交)觸發(fā)。這表明請求已打開并且請求標(biāo)頭已發(fā)送。

例如,當(dāng)用戶單擊按鈕提交表單時,AJAX 請求將發(fā)送到服務(wù)器,服務(wù)器然后處理該請求并發(fā)回響應(yīng)。然后,瀏覽器處理該響應(yīng),并相應(yīng)地更新頁面。另一個例子是,當(dāng)用戶單擊鏈接加載更多內(nèi)容時,AJAX 請求將發(fā)送到服務(wù)器以獲取附加內(nèi)容,然后將其顯示在頁面上。

語法

http.onreadystatechange = function () {
   if (this.readyState == 1) {
      
      //put your code here
      console.log('This is OPENED state')
   }
}

登錄后復(fù)制

HEADERS_RECEIVED 狀態(tài) (2)

這是 AJAX 的第三個就緒狀態(tài)。它用整數(shù) 2 表示。 已接收標(biāo)頭是 AJAX 中請求的一種狀態(tài),在發(fā)送請求并且服務(wù)器用其標(biāo)頭進行響應(yīng)時發(fā)生。服務(wù)器已收到請求并正在準(zhǔn)備響應(yīng),表明已收到響應(yīng)標(biāo)頭。

例如,當(dāng)用戶發(fā)送查看網(wǎng)頁的請求時,服務(wù)器將通過發(fā)回頁面標(biāo)頭進行響應(yīng)。這些標(biāo)頭包含內(nèi)容類型、頁面長度以及頁面上次修改日期等信息。

另一個示例是用戶向服務(wù)器發(fā)送下載文件的請求。服務(wù)器將通過發(fā)回文件頭進行響應(yīng),例如文件的大小和類型以及上次修改的日期。

語法

http.onreadystatechange = function () {
   if (this.readyState == 2) {
      
      //put your code here
      console.log('This is HEADERS_RECEIVED state')
   }
}

登錄后復(fù)制

加載狀態(tài)(3)

AJAX 中請求的加載狀態(tài)是指將請求發(fā)送到服務(wù)器并收到響應(yīng)時。在此期間,請求的狀態(tài)為“l(fā)oading”,表示正在接收響應(yīng)正文。

例如,當(dāng)用戶單擊按鈕提交表單時,加載狀態(tài)是指表單提交并從服務(wù)器返回響應(yīng)(例如成功或錯誤消息)時。

另一個示例是當(dāng)用戶單擊鏈接來導(dǎo)航新頁面時。加載狀態(tài)是指單擊鏈接并加載新頁面時。

語法

http.onreadystatechange = function () {
   if (this.readyState == 3) {
      
      //put your code here
      console.log('This is LOADING state')
   }
}

登錄后復(fù)制

完成狀態(tài) (4)

AJAX 中請求的完成狀態(tài)是指請求已完成并收到響應(yīng)時。此時服務(wù)器已響應(yīng)請求,并且數(shù)據(jù)可用于進一步處理。這表明請求已完成并且已收到響應(yīng)。

語法

http.onreadystatechange = function () {
   if (this.readyState == 4) {
      
      //put your code here
      console.log('This is DONE state')
   }
}

登錄后復(fù)制

示例

在此示例中,我們將執(zhí)行 AJAX 調(diào)用并查看不同的就緒狀態(tài)。我們將更新不同州的網(wǎng)頁,說明其當(dāng)前狀態(tài)。我們無法執(zhí)行 UNSENT 狀態(tài),因為此狀態(tài)僅在發(fā)送 AJAX 調(diào)用之前可用。我們使用按鈕單擊事件處理程序來觸發(fā) AJAX 調(diào)用。

<html>
<body>
   <h2>Different <i>Ready State</i> of AJAX</h2>
   <button onclick = "ajaxCall()">Trigger AJAX Call</button>
   <div id = "root" style = "border: 1px solid black; padding: 1%"></div>
   <script>
      let root = document.getElementById('root')
      function ajaxCall() {
         root.innerHTML = 'AJAX Call Started! <br /><br />'
            
         //AJAX Call
         let http = new XMLHttpRequest()
         http.onreadystatechange = function () {
            if (this.readyState == 1) {
               root.innerHTML += 'This is OPENED state <br />'
            }
            if (this.readyState == 2) {
               root.innerHTML += 'This is HEADERS_RECEIVED state <br />'
            }
            if (this.readyState == 3) {
               root.innerHTML += 'This is LOADING state <br />'
            }
            if (this.readyState == 4) {
               root.innerHTML += 'This is DONE state <br />'
            }
         }
         http.open('GET', 'https://jsonplaceholder.typicode.com/posts/', true)
         http.onload = function () {
            root.innerHTML += '<br />AJAX Call Completed!'
         }
         http.send()
      }
   </script>
</body>
</html>

登錄后復(fù)制

結(jié)論

在 JavaScript 中,AJAX 請求有四種不同的就緒狀態(tài):未發(fā)送、打開、收到標(biāo)頭和完成。未發(fā)送狀態(tài)是指請求尚未發(fā)送到服務(wù)器。打開狀態(tài)是當(dāng)請求已發(fā)送到服務(wù)器但尚未收到響應(yīng)時。標(biāo)頭接收狀態(tài)是服務(wù)器已使用其標(biāo)頭進行響應(yīng)并正在準(zhǔn)備響應(yīng)時的狀態(tài)。完成狀態(tài)是指請求已完成并且已收到響應(yīng)。這些就緒狀態(tài)中的每一個都可以通過 XMLHttpRequest 對象的readyState 屬性來訪問。它們對于跟蹤 AJAX 請求的進度并適當(dāng)處理響應(yīng)非常有用。

以上就是解釋 AJAX 中請求的不同就緒狀態(tài)的詳細內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!

分享到:
標(biāo)簽:ajax 就緒 狀態(tài) 解釋 請求
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定