我在循环中调用了许多jquery异步调用。在最后一次通话结束时,我希望页面刷新以显示通话结束后的结果。我所拥有的不起作用。我会很感激为什么它不工作或更好的解决方案的帮助!
感谢。
var ajaxCount = 0;
$(document).ready(function () {
$(document).ajaxStart(function () {
ajaxCount = 1;
});
$(document).ajaxStop(function () {
ajaxCount = 0;
});
}
function(){
for(x loops){
$ajax({...});
}
while (ajaxCount != 0) { }
document.location = applicationRoot + 'Qc.mvc/ViewQc/' + batchId + '/1';
}
答案 0 :(得分:2)
.ajaxStop()
,因此您可以直接使用它,例如:
function(){
$(document).ajaxStop(function() {
window.location.href = applicationRoot + 'Qc.mvc/ViewQc/' + batchId + '/1';
});
$ajax({...});
}
如果你需要活跃的AJAX请求数,jQuery已经维护了这个,它只是不公开它......它实际上是用于确定何时触发ajaxStart
和ajaxStop
事件的内容。你可以通过$.active
获得它。在jQuery 1.5+中,它被移动到$.ajax.active
。
答案 1 :(得分:0)
为什么不将window.location.href = ....
放在那个特定的ajax调用的回调函数中?
$(document).ajaxStart(function () {
ajaxCount = ajaxCount + 1;
});
$(document).ajaxStop(function () {
ajaxCount = ajaxCount - 1;
if (ajaxCount == 0 && check if they're all fired)
window.location.href = ...
});