如何让一个函数等到所有jQuery Ajax请求在另一个函数内完成?
简而言之,在执行下一步之前,需要等待所有的Ajax请求完成。
发布于 2018-06-05 19:23:08
jQuery ajaxQueue
//This handles the queues
(function($) {
var ajaxQueue = $({});
$.ajaxQueue = function(ajaxOpts) {
var oldComplete = ajaxOpts.complete;
ajaxQueue.queue(function(next) {
ajaxOpts.complete = function() {
if (oldComplete) oldComplete.apply(this, arguments);
next();
};
$.ajax(ajaxOpts);
});
};
})(jQuery);
然后可以像下面这样向队列添加一个ajax请求:
$.ajaxQueue({
url: 'page.php',
data: {id: 1},
type: 'POST',
success: function(data) {
$('#status').html(data);
}
});
发布于 2018-06-05 20:07:09
使用ajaxStop
事件。
例如假设在获取100个Ajax请求时有加载消息,并且想在加载后隐藏该消息。
从jQuery 文档:
$("#loading").ajaxStop(function() {
$(this).hide();
});
它将等待该页面上所有的Ajax请求。
https://stackoverflow.com/questions/-100004753
复制相似问题