【发布时间】:2015-04-09 15:38:26
【问题描述】:
只是想知道如何确保 for 循环中的 Ajax 按顺序返回值。例如,我有这样的代码:
for(var i=0; i < list.length; i++) {
$.ajax({
url: ...,
type: 'get',
dataType: "jsonp",
success: function(data) {
...
var html = '...';
$('#some-div').append(html);
})
}
当我运行它时,结果有时会以正确的顺序运行,但有时却不会。我不知道该怎么办。请有人帮我解决这个问题。谢谢!
【问题讨论】:
-
除非您将请求一个接一个地链接起来,否则无法 100% 保证它们的执行顺序。它们将按 1、2、3 的顺序发送到服务器,但是服务器可能不会按该顺序接收或处理它们,并且处理时间也可能会有所不同,因此响应可能会在 2、3、1 中返回.
-
如果可能的话,我会尝试将这些请求合并为一个。在这样的循环中看到 ajax 通常是一个危险信号。
-
@john26blue 检查我的答案,它应该可以工作。
标签: javascript jquery ajax for-loop