通知目的で開発したイントラネットで使用しています。状態 3 をインターセプトすることで、リクエストが開始されたことをユーザーに通知できます。
また、リクエストの送信時間を計るためにも使用します。状態 3 と 4 の間の経過時間を表示します。
MooTools を使用しているので、Request クラスを拡張して onStateChange イベントを発生させました。
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)
オブジェクトが構築されました。
OPENED (数値 1)
open() メソッドが正常に呼び出されました。この状態の間、リクエスト ヘッダーは setRequestHeader() を使用して設定でき、リクエストは send() メソッドを使用して行うことができます。
HEADERS_RECEIVED (数値 2)
すべてのリダイレクト (存在する場合) が追跡され、最終応答のすべての HTTP ヘッダーが受信されました。オブジェクトのいくつかの応答メンバーが利用できるようになりました。
LOADING (数値 3)
レスポンスエンティティボディを受信中です。
DONE (数値 4)
データ転送が完了したか、転送中に問題が発生しました (無限リダイレクトなど)。