今天查了一下ajax中readystate屬性的狀態碼含義,發現大多解釋不全,雖然每句話都是對的,但卻都不一樣。這裡整理了一下個人覺得最佳的解釋。
readystate表示xhr物件的請求狀態,取值範圍是0——4,分別表示5個不同的狀態。
0:(未初始化)xhr物件已經建立,但還沒有呼叫open()方法。值為0表示物件已經存在,否則瀏覽器會報錯:物件不存在。
1 :(載入/傳送請求)呼叫open()方法對xhr物件進行初始化,根據引數(method,url,true),完成物件狀態的設定。並呼叫send()方法開始向服務端傳送請求。值為1表示正在向服務端傳送請求。
2 :(載入完成/響應接收)接收伺服器端響應回的資料。但獲得的還只是服務端響應的原始資料,並不能直接在客戶端使用。值為2表示send()請求方法執行完成,並已經接收完全部的響應資料(未解析)。
3 - (互動/解析資料)正在解析從伺服器端接收到的響應資料。即根據伺服器端響應頭部返回的mime型別把資料轉換成能通過responsebody、responsetext或respon***ml屬性訪問的格式,為在客戶端呼叫作好準備。值為3表示正在解析資料。
4 - (後台處理完成)響應內容解析完成,可以在客戶端呼叫了。此階段確認全部資料都已經解析為客戶端可用的格式,解析已經完成。值為4表示資料解析完畢,可以通過xmlhttprequest物件的相應屬性取得資料。
總之,整個xmlhttprequest物件的生命週期應該包含如下階段:
建立-0初始化請求-1傳送請求-2接收資料-3解析資料-4完成 。
開發中預設使用」===」來避免丟擲異常。
如果想把標準寫法和ie寫法混在一起,可以這麼寫:
從readystate狀態看ajax
從readystate狀態看ajax。在 pragmatic ajax a web 2.0 primer 中偶然看到對readystae狀態的介紹,感覺這個介紹很實在,摘譯如下 2 載入完成 send 方法執行完成,已經接收到全部響應內容 4 完成 響應內容解析完成,可以在客戶端呼叫了 0 未初始化...
Ajax的readyState和status屬性
readystate屬性包括五種可能的取值 0 未初始化 send方法還沒有被呼叫 1 載入中 已呼叫了send方法,請求還在處理 2 已載入 send方法已完成,整個應答已接收 3 互動中 正在解析應答 4 已完成 應答已經解析,準備好進行下一步處理。物件xmlhttprequest 屬性stat...
ajax原理和readyState狀態碼
1.建立xmlhttprquest物件 用於與伺服器交換資料 相當於建立http請求的乙個物件 var xhr new xmlhttprequest xhr.open get test.txt test.txt獲取內容的位址3.將請求傳送到伺服器,開始請求 send xhr.send 4.等待響應,...