Esta é uma variável que o jQuery usa internamente, mas não tinha motivo para esconder, então está lá para usar. Apenas um aviso, torna-se o jquery.ajax.active
próximo lançamento . Não há documentação porque está exposta, mas não na API oficial, muitas coisas são assim na verdade, como jQuery.cache
(para onde jQuery.data()
vai tudo ).
Estou supondo aqui pelo uso real na biblioteca, parece estar lá exclusivamente para oferecer suporte $.ajaxStart()
e $.ajaxStop()
(o que explicarei mais adiante), mas eles só se importam se é 0 ou não quando uma solicitação começa ou para. Mas, como não há motivo para ocultá-lo, ele é exposto para que você possa ver o número real de solicitações AJAX simultâneas em andamento.
Quando o jQuery inicia uma solicitação AJAX, isso acontece :
if ( s.global && ! jQuery.active++ ) {
jQuery.event.trigger( "ajaxStart" );
}
Isso é o que faz com que o $.ajaxStart()
evento seja disparado, o número de conexões acabou de ir de 0 a 1 ( jQuery.active++
não é 0 depois desta, e !0 == true
), isso significa que a primeira das solicitações simultâneas atuais foi iniciada. A mesma coisa acontece na outra extremidade. Quando uma solicitação AJAX para (devido a um beforeSend
aborto viareturn false
ou uma função de chamada ajax complete
é executada ):
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}
Isso é o que faz com que o $.ajaxStop()
evento seja disparado, o número de solicitações caiu para 0, significando que a última chamada AJAX simultânea foi concluída. Os outros manipuladores AJAX globais também são acionados ao longo do caminho.
$.active
, aliás.$
simplesmente um apelido parajQuery
, então ambos ainda são verdadeiros?jQuery
semnoConflict
.Para quem tenta usar jQuery.active com solicitações JSONP (como eu), você precisará habilitá-lo com isto:
Lembre-se de que você precisará de um tempo limite em sua solicitação JSONP para detectar falhas.
fonte