我可以依靠ajax回调将按照定义的顺序执行吗?

时间:2015-04-27 13:55:46

标签: jquery ajax

如果我在document.ready中有2个ajax()函数:

$(function() {
  ...  
  $.ajax({ // 1st
    success: function (result) {
    ...
    });
  });
  ...
  $.ajax({ // 2nd
    success: function (result) {
    ...
    });
  });
  ...
});

并且第二次成功的结果取决于第一次成功的结果,在这种情况下代码是否合适?或者我应该将第二个ajax放入第一个回调中吗?

3 个答案:

答案 0 :(得分:1)

那些是异步调用,这意味着如果两个调用以指定的顺序发送,则该事件的答案可以来自服务器的任何顺序。因此,根据墨菲定律,有可能在第一次回调之前调用第二次回调。在这种情况下,您希望设置的变量不会是。

这就解释了为什么“erkaner”告诉你把第二个Ajax调用放在第一个成功的第一个。这将保证执行将按预期顺序进行。

答案 1 :(得分:0)

如果第一个必须执行,如果第一个是成功的话,是的,你把它放在第一个的成功

答案 2 :(得分:0)

不,您不能指望接收对异步ajax调用的响应的顺序与发送ajax请求的顺序相同。

http://api.jquery.com/jquery.ajax/

“...意味着操作并行发生,并且无法保证完成顺序。”