2015-07-20 27 views
1

目前我展示纺纱,用ajax设置方法调用:为许多ajax调用显示ajax spinners。

(function() { 
    $.ajaxSetup({ 
     beforeSend: showLoader, 
     complete: hideLoader, 
     error: hideLoader 
    }); 
})(); 

这是工作正常,但现在的问题是发生的时候,许多AJAX调用发生,complete被关闭装载机!

有没有简单的方法来处理这个问题?

+0

据我所知,'complete'将尽快为触发Ajax调用的一个完整而不是全部。你是在隐藏微调器之后才完成那些请求? – lshettyl

回答

0

我可以建议的唯一的事情就是保留一个计数器,告诉你有多少个ajax调用正在进行,当一个调用进行增量,当一个调用完成后,然后在hideLoader函数中检查计数器,if它高于0不会隐藏它。

1

你可以看看jQuery的.ajaxStart.ajaxStop方法。

$(document).ajaxStart(function() { 
    // show your loader 
}); 

$(document).ajaxStop(function() { 
    // hide your loader 
}); 
0

There DOM在jQuery中绑定ajax开始和ajax结束事件的事件。使用

.ajaxStart(); 
.ajaxStop(); 

在DOM中显示您的加载器。

0

你可以使用jQuery.ajaxStop(),当所有的Ajax调用已经执行被称为,

$(document).ajaxStop(function() { 
    //call hideLoader here 
}); 
+0

jQuery从文档中检查这个时间框架:* jQuery检查是否有任何其他未完成的Ajax请求。如果不存在,jQuery触发ajaxStop事件* – batman

+0

没有时间框架,它取决于请求的数量和客户端。重大变化。 – 2015-07-20 09:51:46