Это переменная, которую 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 останавливается (из - за более beforeSend
прерывание черезreturn false
или вызов AJAX complete
функции пробеги ):
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}
Это то, что вызывает $.ajaxStop()
срабатывание события: количество запросов упало до 0, что означает, что последний одновременный вызов AJAX завершился. В других обработчиках глобального AJAX в огнь там по пути , а также.
$.active
, кстати.$
просто псевдонимjQuery
, так что оба они все еще верны?jQuery
без негоnoConflict
.Для тех, кто пытается использовать jQuery.active с запросами JSONP (как и я), вам нужно включить его следующим образом:
Имейте в виду, что вам понадобится тайм-аут в вашем запросе JSONP, чтобы отловить сбои.
источник