这可能是一个微不足道的问题,但我想知道是否有办法以某种方式知道最后的ajax调用何时完成。所以假设我有3个异步ajax调用
$.ajax({
type: "GET",
datatype: "json",
url: <my service url 1>
})
.done(function() {
// handler
});
$.ajax({
type: "GET",
datatype: "json",
url: <my service url 2>
})
.done(function() {
// handler
});
$.ajax({
type: "GET",
datatype: "json",
url: <my service url 3>
})
.done(function() {
// handler
});
我想在第一个呼叫开始时显示进度条,并在最后一个呼叫结束时隐藏它。问题是即使我按顺序调用它们,因为调用是异步的,我不知道如何判断所有调用何时完成。我可以将它们嵌套在另一个内部,但据我所知,它需要更长的时间,因为必须等待另一个完成。有没有办法以某种方式同步它?
答案 0 :(得分:2)
我曾经有过相同的需求。如果您可以使用jQuery,请查看:http://lostechies.com/joshuaflanagan/2011/10/20/coordinating-multiple-ajax-requests-with-jquery-when/
否则,您可以通过AJAX调用传递一个简单的回调函数,该函数在每次异步处理结束时返回进度指示器更新。
答案 1 :(得分:2)