jQuery.active函数
我试图find更多关于以下jQuery函数的信息:
jQuery.active
这里描述的是testing到服务器的活动连接的数量,并且当连接数为零时评估为真。
http://agilesoftwaretesting.com/?p=111
http://web.elctech.com/2008/11/10/jquery-ajax-loading-and-selenium-respec-testing/
我无法在jQuery网站上find关于此function的任何信息,并想知道是否有人知道我在哪里。
这是一个jQuery内部使用的variables,但没有理由隐藏,所以它在那里使用。 刚刚起来, 它成为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处理程序也在这里开火。
对于任何人尝试使用jQuery.active与JSONP请求(就像我),你需要启用它与此:
jQuery.ajaxPrefilter(function( options ) { options.global = true; });
请记住,您需要在JSONP请求上超时以捕获失败。