目前我展示纺纱,用ajax设置方法调用:为许多ajax调用显示ajax spinners。
(function() {
$.ajaxSetup({
beforeSend: showLoader,
complete: hideLoader,
error: hideLoader
});
})();
这是工作正常,但现在的问题是发生的时候,许多AJAX调用发生,complete
被关闭装载机!
有没有简单的方法来处理这个问题?
目前我展示纺纱,用ajax设置方法调用:为许多ajax调用显示ajax spinners。
(function() {
$.ajaxSetup({
beforeSend: showLoader,
complete: hideLoader,
error: hideLoader
});
})();
这是工作正常,但现在的问题是发生的时候,许多AJAX调用发生,complete
被关闭装载机!
有没有简单的方法来处理这个问题?
我可以建议的唯一的事情就是保留一个计数器,告诉你有多少个ajax调用正在进行,当一个调用进行增量,当一个调用完成后,然后在hideLoader
函数中检查计数器,if它高于0
不会隐藏它。
你可以看看jQuery的.ajaxStart和.ajaxStop方法。
$(document).ajaxStart(function() {
// show your loader
});
$(document).ajaxStop(function() {
// hide your loader
});
There DOM
在jQuery中绑定ajax开始和ajax结束事件的事件。使用
.ajaxStart();
.ajaxStop();
在DOM中显示您的加载器。
你可以使用jQuery.ajaxStop(),当所有的Ajax调用已经执行被称为,
$(document).ajaxStop(function() {
//call hideLoader here
});
jQuery从文档中检查这个时间框架:* jQuery检查是否有任何其他未完成的Ajax请求。如果不存在,jQuery触发ajaxStop事件* – batman
没有时间框架,它取决于请求的数量和客户端。重大变化。 – 2015-07-20 09:51:46
据我所知,'complete'将尽快为触发Ajax调用的一个完整而不是全部。你是在隐藏微调器之后才完成那些请求? – lshettyl