日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

AJAX 代表異步 JavaScript 和 XML。它是一組用于創建交互式 Web 應用程序的 Web 開發技術。 AJAX 允許網頁與服務器通信,而無需重新加載頁面。

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

下面我們詳細介紹了 AJAX 的不同就緒狀態。

未發送狀態(0)

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

語法

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

登錄后復制

打開狀態(1)

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

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

語法

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

登錄后復制

HEADERS_RECEIVED 狀態 (2)

這是 AJAX 的第三個就緒狀態。它用整數 2 表示。 已接收標頭是 AJAX 中請求的一種狀態,在發送請求并且服務器用其標頭進行響應時發生。服務器已收到請求并正在準備響應,表明已收到響應標頭。

例如,當用戶發送查看網頁的請求時,服務器將通過發回頁面標頭進行響應。這些標頭包含內容類型、頁面長度以及頁面上次修改日期等信息。

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

語法

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

登錄后復制

加載狀態(3)

AJAX 中請求的加載狀態是指將請求發送到服務器并收到響應時。在此期間,請求的狀態為“loading”,表示正在接收響應正文。

例如,當用戶單擊按鈕提交表單時,加載狀態是指表單提交并從服務器返回響應(例如成功或錯誤消息)時。

另一個示例是當用戶單擊鏈接來導航新頁面時。加載狀態是指單擊鏈接并加載新頁面時。

語法

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

登錄后復制

完成狀態 (4)

AJAX 中請求的完成狀態是指請求已完成并收到響應時。此時服務器已響應請求,并且數據可用于進一步處理。這表明請求已完成并且已收到響應。

語法

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

登錄后復制

示例

在此示例中,我們將執行 AJAX 調用并查看不同的就緒狀態。我們將更新不同州的網頁,說明其當前狀態。我們無法執行 UNSENT 狀態,因為此狀態僅在發送 AJAX 調用之前可用。我們使用按鈕單擊事件處理程序來觸發 AJAX 調用。

<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>

登錄后復制

結論

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

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

分享到:
標簽:ajax 就緒 狀態 解釋 請求
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定