如果我在document.ready中有2个ajax()函数:
$(function() {
...
$.ajax({ // 1st
success: function (result) {
...
});
});
...
$.ajax({ // 2nd
success: function (result) {
...
});
});
...
});
并且第二次成功的结果取决于第一次成功的结果,在这种情况下代码是否合适?或者我应该将第二个ajax放入第一个回调中吗?
答案 0 :(得分:1)
那些是异步调用,这意味着如果两个调用以指定的顺序发送,则该事件的答案可以来自服务器的任何顺序。因此,根据墨菲定律,有可能在第一次回调之前调用第二次回调。在这种情况下,您希望设置的变量不会是。
这就解释了为什么“erkaner”告诉你把第二个Ajax调用放在第一个成功的第一个。这将保证执行将按预期顺序进行。
答案 1 :(得分:0)
如果第一个必须执行,如果第一个是成功的话,是的,你把它放在第一个的成功
答案 2 :(得分:0)
不,您不能指望接收对异步ajax调用的响应的顺序与发送ajax请求的顺序相同。
http://api.jquery.com/jquery.ajax/:
“...意味着操作并行发生,并且无法保证完成顺序。”