jQuery ajaxreadystate 插件
jQuery AJAX 實作有一定的局限性,因為它不提供在回應 AJAX 請求期間觸發的readystatechange
事件的方法。 jQuery.ajax
API 文件實際上說明了以下內容。
然而,沒有提供
onreadystatechange
機制,因為done
、fail
、always
和statusCode
涵蓋了所有可能的要求。
雖然此聲明對於大多數用例都是正確的,但如果您想在整個請求完成之前存取回應標頭或狀態代碼,或者在串流時存取回應正文,該怎麼辦?
顯然,由於瀏覽器相容性問題,jQuery 不提供此功能,因此該插件為支援這些功能的瀏覽器添加了此額外功能(請參閱下面的相容性說明)。
該插件的工作原理是添加一個新方法jQuery.ajaxreadystate
方法,該方法充當jQuery.ajax
的包裝器,擴展功能並更新jqXHR
物件以消除限制並在readyState
更改時更新屬性。
您可以像使用jQuery.ajax
一樣使用jQuery.ajaxreadystate
,只不過您可以定義額外的方法,即readystate
方法。
jQuery . ajaxreadystate ( {
readystate : function ( jqXHR , readyState ) {
}
} ) ;
每次請求觸發readystatechange
事件時都會觸發此方法,並將傳入更新的jqXHR
物件和目前的readyState
。
您可以從此儲存庫的發布部分下載最新的穩定和精簡版本。或者,您可以從套件管理器克隆儲存庫下載。
###完全支持
完全支援以下瀏覽器。
###部分支持
由於瀏覽器本身的技術限制,部分支援以下瀏覽器。注意到相容性問題。
readyState
為4
之前, responseText
不可用。readyState
3
的一個readystatechange
事件。readyState
為4
之前, responseText
不可用。status
和statusText
在readyState
為4
之前不會更新。getAllResponseHeaders
和getResponseHeader
傳回null
直到readyState
為4
。readyState
1
時才會觸發readystate
回呼。readyState
為4
之前, responseText
不可用。status
和statusText
在readyState
為4
之前不會更新。getAllResponseHeaders
和getResponseHeader
傳回null
直到readyState
為4
。getAllResponseHeaders
和getResponseHeader
傳回null
直到readyState
為3
。getAllResponseHeaders
和getResponseHeader
傳回null
直到readyState
為3
。readyState
3
的一個readystatechange
事件。status
和statusText
在readyState
為3
之前不會更新。readyState
3
的一個readystatechange
事件。status
和statusText
在readyState
為3
之前不會更新。readyState
3
的一個readystatechange
事件。getAllResponseHeaders
和getResponseHeader
傳回null
直到readyState
為4
。未測試比列出的版本更舊的瀏覽器,但可能部分或完全支援。
該插件與 jQuery 1.5+ 和 jQuery 2.0.0+ 相容。
若要建立縮小的構建,請從此儲存庫的根目錄執行此命令。
$ npm run build
如果您發現錯誤或遇到上面未記錄的相容性問題,請在此儲存庫的問題部分下開啟一個票證。
請參閱 LICENSE.txt
如果此許可證不適合您,請隨時與我聯繫。
如果您發現我的軟體有用,請考慮在我的網站 alexomara.com 上捐款。