Ajax は多くのイベントをトリガーします。
イベントには 2 種類あり、1 つはローカル イベント、もう 1 つはグローバル イベントです。
ローカル イベント: $.ajax を通じて呼び出され、割り当てられます。
イベントの順序は次のとおりです:
ajaxStart グローバル イベント
新しい Ajax リクエストを開始します。現時点では他の Ajax リクエストは進行中ではありません。
beforeローカルイベントを送信
Ajax リクエストの開始時に発生します。必要に応じて、ここで XHR オブジェクトを設定できます。
ajaxSend グローバル イベント
リクエストの開始前にグローバル イベントがトリガーされました
地元イベントの成功
リクエストが成功するとトリガーされます。つまり、サーバーはエラーを返さず、返されたデータにはエラーがありません。
ajaxSuccess グローバル イベント
グローバルリクエストは成功しました
エラーローカルイベント
エラーが発生した場合にのみトリガーされます。成功コールバック関数とエラーコールバック関数の両方を同時に実行することはできません。
ajaxError グローバル イベント
エラーが発生したときにグローバルにトリガーされます
ローカルイベントを完了
リクエストが成功したか失敗したかに関係なく、たとえそれが同期リクエストであっても、リクエストの完了時にこのイベントをトリガーできます。
ajaxComplete グローバル イベント
グローバルリクエストが完了するとトリガーされます
ajaxStop グローバル イベント
Ajax が実行中でないときに発生します。
ローカル イベント コールバックのパラメータはドキュメントに明確に記載されているため、ここでは詳しく説明しません。
グローバル イベントでは、ajaxStart と ajaxStop を除き、他のイベントには 3 つのパラメーターがあります
イベント、XMLHttpRequest、ajaxOptions
1 つ目はイベント、2 つ目は XHR オブジェクト、そして 3 つ目のパラメータが最も便利で、この ajax を呼び出すときのパラメータです。
ajaxError には、例外が発生した場合にのみ渡される 4 番目のパラメーター throwError があります。
ajaxOptions を使用して、グローバル Ajax イベントを作成できます。
たとえば
この例では、
このようにして、現在の ajax ステータスをグローバルな場所に簡単に表示できます。
もちろん、前に述べたように、3 番目のパラメーターは実際には ajax に渡されるパラメーターです。 get/post/load/getScript/getJSON などのメソッドは基本的に ajax メソッドを呼び出すため、ajaxOptions.url 属性は常に有効です。
他にもたくさんの例があります。
ajax で呼び出す場合は、カスタム パラメーターを渡すこともできます。次の例では、ajax 呼び出し
の msg パラメーターをカスタマイズしました。
get、post、getJSON などの他の単純な Ajax メソッド、そのコールバック関数はすべて成功コールバックで設定されています。
実際にはロード設定のみが完全なコールバックです。
したがって、load に設定されるコールバック関数には 2 つのパラメータが必要です。
XMLHttpRequest と textStatus
しかし、実際はそうではありません。
ロード コールバックには 3 つのパラメータがあります
XMLHttpRequest.responseText、textStatus、XMLHttpRequest
したがって、load のコールバックで
を実行できます。
textStatus=="success" または textStatus=="error" を使用して、呼び出しが成功したかどうかを判断します。
または、XMLHttpRequest.status 属性を使用して、200 か 404 かその他かを判断します。
この点では、通常の get/post メソッドよりも高度だと思います。各getの誤差を奇数に設定することはできません。ただし、グローバルな ajaxError を設定することは実際には良い選択です。