Esta es una variable que jQuery usa internamente, pero no tenía ninguna razón para esconderse, por lo que está ahí para usar. Solo un aviso, se convierte en el jquery.ajax.active
próximo lanzamiento . No hay documentación porque está expuesta pero no en la API oficial, muchas cosas son así en realidad, como jQuery.cache
(a dónde jQuery.data()
va todo).
Supongo que aquí, por el uso real en la biblioteca, parece estar allí exclusivamente para admitir $.ajaxStart()
y $.ajaxStop()
(que explicaré más adelante), pero solo les importa si es 0 o no cuando una solicitud comienza o se detiene. Pero, dado que no hay razón para ocultarlo, está expuesto a que puede ver el número real de solicitudes AJAX simultáneas que se están produciendo actualmente.
Cuando jQuery inicia una solicitud AJAX, esto sucede :
if ( s.global && ! jQuery.active++ ) {
jQuery.event.trigger( "ajaxStart" );
}
Esto es lo que hace que se active el $.ajaxStart()
evento, el número de conexiones simplemente pasó de 0 a 1 ( jQuery.active++
no es 0 después de este, y !0 == true
), esto significa que comenzó la primera de las solicitudes simultáneas actuales . Lo mismo sucede en el otro extremo. Cuando se detiene una solicitud AJAX (debido a un beforeSend
aborto mediantereturn false
o se ejecuta una función de llamada ajaxcomplete
):
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}
Esto es lo que hace que se active el $.ajaxStop()
evento, el número de solicitudes bajó a 0, lo que significa que finalizó la última llamada AJAX simultánea . Los otros controladores AJAX globales también se activan allí en el camino.
$.active
, por cierto.$
simplemente un alias dejQuery
, ¿entonces ambos siguen siendo ciertos?jQuery
sinnoConflict
.Para cualquiera que intente usar jQuery.active con solicitudes JSONP (como yo), deberá habilitarlo con esto:
Tenga en cuenta que necesitará un tiempo de espera en su solicitud JSONP para detectar fallas.
fuente