Jest to zmienna, której jQuery używa wewnętrznie, ale nie miała powodu, aby się ukrywać, więc można ją wykorzystać. Tylko jedno ostrzeżenie, to będzie jquery.ajax.activenastępne wydanie . Nie ma dokumentacji, ponieważ jest ujawniona, ale nie w oficjalnym API, w rzeczywistości wiele rzeczy jest takich, jak jQuery.cache(gdzie wszystkiejQuery.data() idzie).
Zgaduję, że przez rzeczywiste użycie w bibliotece wydaje się być tam wyłącznie do obsługi $.ajaxStart()i $.ajaxStop()(co wyjaśnię dalej), ale obchodzi ich tylko to, czy jest 0, czy nie, gdy żądanie zaczyna się lub kończy. Ale ponieważ nie ma powodu, aby to ukrywać, jest on ujawniany, możesz zobaczyć rzeczywistą liczbę jednoczesnych żądań AJAX, które są obecnie wykonywane.
Kiedy jQuery uruchamia żądanie AJAX, dzieje się tak :
if ( s.global && ! jQuery.active++ ) {
jQuery.event.trigger( "ajaxStart" );
}
To jest to, co powoduje uruchomienie $.ajaxStart()zdarzenia, liczba połączeń właśnie wzrosła z 0 do 1 ( jQuery.active++nie jest 0 po tym, i !0 == true), co oznacza, że rozpoczęto pierwsze z bieżących jednoczesnych żądań. To samo dzieje się na drugim końcu. Gdy żądanie AJAX zatrzymania (z powodu na beforeSendAbort poprzezreturn false lub połączenia Ajax completebiegnie funkcyjne )
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}
To właśnie powoduje uruchomienie $.ajaxStop()zdarzenia, liczba żądań spadła do 0, co oznacza, że ostatnie jednoczesne połączenie AJAX zostało zakończone. W innych koparki globalny AJAX ogień tam po drodze, jak również.