我试图了解同步ajax调用如何适应执行顺序,因为我遇到了一些奇怪的错误。
// (1)
$.ajax({
async: false,
url: url0,
dataType: 'json',
success: function(data) {
// (2)
});
// (3)
对于同步ajax调用,评估顺序是(1)
,然后是(2)
,然后总是后跟(3)
?我想特别确认(3)
仅在整个(2)
之后执行。
答案 0 :(得分:1)
是的,但这不是解决这个问题的正确方法。相反,将(3)中的代码移动到成功处理程序(2)中。
如果它们达到同样的效果,你能解释一下为什么重要吗?如果(2)与从ajax调用获得的数据无关,该怎么办?
同步调用将阻止浏览器运行时直到完成。这意味着UI对用户完全没有响应。
如果要在逻辑上将当前(2)与(3)分开,可以绑定多个成功处理程序,如下所示:
var d = $.ajax({
url: url0,
dataType: 'json'
});
d.success(function() {
// (2)
});
d.success(function() {
// (3)
});
它们将按顺序执行。