XHR.ONREADYSTATECHANGEコールバックの「4」(完全)とは異なるReadyStateの有用な用途はありますか?

StackOverflow https://stackoverflow.com/questions/4504990

質問

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)データ転送が完了したか、転送中に何かがうまくいかなかった(たとえば、無限リダイレクト)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top