如何在所有ajax请求完成后调用alert
How to call alert after all ajax requests are done?
我在代码中使用JQuery和get
的一些请求。它看起来像:
$.get('address1', function() { ... });
$.get('address2', function() { ... });
$.get('address3', function() { ... });
// This code should be runned when all 3 requests are finished
alert('Finished');
那么,是否有任何方法可以检测是否还有正在处理的请求,并且只有当所有3个请求都完成时才运行标记的代码?
谢谢。
可以使用jQuery 1.5中引入的延迟对象[docs]:
$.when(
$.get('address1', function() { ... }),
$.get('address2', function() { ... }),
$.get('address3', function() { ... })
).then(function() {
alert('Finished');
});
参考: jQuery.when
jQuery学习中心对延迟对象/承诺有很好的介绍。
var isFinished = [];
$.get('address1', function() { isFinshed.push["address1"]; allDone(); });
$.get('address2', function() { isFinshed.push["address2"]; allDone(); });
$.get('address3', function() { isFinshed.push["address3"]; allDone();});
var allDone = function(){
if(isFinished.length < 3)return
alert('Finished');
};
var fin1 = false;
var fin2 = false;
var fin3 = false;
$.ajax({
url: "address1",
success: function(){
fin1 = true;
fnUpdate();
}
});
$.ajax({
url: "address2",
success: function(){
fin2 = true;
fnUpdate();
}
});
$.ajax({
url: "address3",
success: function(){
fin3 = true;
fnUpdate();
}
});
function fnUpdate(){
if(fin1 && fin2 && fin3){
alert('fin');
}
}
var count = 0;
$.get('address1', function() { count++; ... });
$.get('address2', function() { count++; ... });
$.get('address3', function() { count++; ... });
var int = setInterval(function() {
if (count === 3) {
clearInterval(int);
alert('done');
}
}, 10);
相关文章:
- 当调用JS函数具有alert()时,应用程序将被冻结
- 为什么在调用 window.open() 后需要编写 alert()
- C# WebView 不理解 JavaScript 调用 alert()(Windows 8 XAML 应用程序)
- JQuery css() 效果逆转,除非我事先调用 alert('时间浪费')
- 覆盖函数(例如“alert”)并调用原始函数
- 调用 alert() 是否会清除浏览器缓存
- 在php-if上调用一个修改过的alert函数
- 调用javascript函数的flash应用程序在调用javascript alert()时停止挂起处理
- 除非调用alert(),否则不会设置异步回调中设置的值
- 如何在$.post()回调显示alert()之前调用函数
- Alert不会在onSubmit方法中被调用
- 如何使用jQuery调用Bootstrap alert
- 在Node.js脚本中调用alert()函数会冻结整个服务器吗?
- Node js:应该使用alert来调用该函数
- 只有在重定向行之后调用alert()时,greasemmonkey发出的重定向才有效
- 如何调用Lightbox而不是JS "alert"
- 在bootbox中调用alert
- Jquery if条件,如果字符串格式不正确,将调用Alert
- Chrome:调用'alert()'在微任务执行期间已弃用,并将被删除
- 如何在所有ajax请求完成后调用alert