1. ホーム
  2. jquery

[解決済み] jQuery.active関数

2023-01-03 19:22:27

質問

以下のjQueryの関数について、もう少し情報を得ようと思っています。

jQuery.active

サーバへのアクティブな接続数をテストするために記述され、接続数が0のときに真と評価されます。

私はjQueryのサイトでこの関数に関する情報を見つけることができなかったので、誰かが私ができる場所を知っていたならばと思いました。

どのように解決するのですか?

これはjQueryが内部で使っている変数ですが、隠す理由がなかったので、使えるようにしてあります。 ただ、注意点として になると jquery.ajax.active 次のリリース . であるため、ドキュメントはありません。 公開されている が公式の API ではないため、ドキュメントがありません。 jQuery.cache (ここで、すべての jQuery.data() が入る)。

によって、ここで推測しているのは 実際 をサポートするためだけに存在するように思えます。 $.ajaxStart() $.ajaxStop() (などがありますが(これはまた説明します)、リクエストの開始時と停止時に0かどうかだけを気にしています。 しかし、隠す理由がないので、実際の数がわかるように公開されています。 同時 AJAXリクエストの実際の数を見ることができます。


jQueryがAJAXリクエストを開始したとき。 が発生します。 :

if ( s.global && ! jQuery.active++ ) {
  jQuery.event.trigger( "ajaxStart" );
}

これが原因で $.ajaxStart() イベントが発生し、接続数が 0 から 1 になっただけです ( jQuery.active++ はこの後 0 にならないし !0 == true を含む)、これは、現在の最初の 同時 リクエストが開始されたことを意味します。 同じことがもう一方の端でも起こります。 AJAX リクエストが停止すると ( a beforeSend によって中断されたとき return false または ajax 呼び出し complete 関数が実行される ):

if ( s.global && ! --jQuery.active ) {
  jQuery.event.trigger( "ajaxStop" );
}

これが原因で $.ajaxStop() イベントが発生し、リクエストの数が 0 になった、つまり最後の 同時 AJAX呼び出しが終了したことを意味します。 このとき 他のグローバルAJAXハンドラ は、途中でそこにも発火します。