XHR.ONREADYSTATECHANGEコールバックの「4」(完全)とは異なるReadyStateの有用な用途はありますか?
-
12-10-2019 - |
質問
XHRオブジェクトを使用して、「4」(完全)とは異なるReadyStateを使用してOnreadedStateChangeをインターセプトしたことがありますか?
可能な異なる値で関数をトリガーするかどうか知りたいです。他の国家の本当の使用を想像することはできません。彼らは何かをするのに多少便利ですか?
いくつかの実用的な例を与えることができますか?
- 0:初期化されていない要求
- 1:サーバー接続が確立されています
- 2:受信したリクエスト
- 3:リクエストの処理
- 4:リクエストの終了と応答の準備が整いました
解決
通知のために開発したイントラネットで使用します。状態3を傍受することにより、リクエストが開始されたことをユーザーに通知できます。
また、リクエストの送信時間をタイミングするために使用します。州3と4の間で経過する時間を表示します。
Mootoolsを使用しているので、リクエストクラスを拡張して、オンスタテチェンジイベントを起動しました。
var EarlyRequest = new Class({Extends: Request,
onStateChange: function() {
this.fireEvent("onStateChange", [this.xhr.readyState]);
this.parent();
}
});
追加のメモ。 (W3CSchoolsから)投稿した州の定義は誤解を招きます、これらは私にとってより明確です( http://www.w3.org/tr/xmlhttprequest/#states):
Unsent(数値値0)オブジェクトが構築されています。
オープン(数値1)Open()メソッドが正常に呼び出されました。この状態リクエスト中に、ヘッダーはsetRequestheader()を使用して設定でき、send()メソッドを使用してリクエストを行うことができます。
headers_received(数値2)すべてのリダイレクト(ある場合)が守られており、最終応答のすべてのHTTPヘッダーが受信されました。オブジェクトの複数の応答メンバーが利用可能になりました。
読み込み(数値3)応答エンティティボディが受信されています。
完了(数値4)データ転送が完了したか、転送中に何かがうまくいかなかった(たとえば、無限リダイレクト)。