【发布时间】:2016-01-16 18:02:34
【问题描述】:
我正在尝试在 tr 循环中使用 ajax。
这是我的代码:
var i=0;
$("tr").each(function() {
var row = datastring;
console.log("I = " + i);
$.ajax({
type: 'POST',
url: 'somelinkgoeshere.com',
data: row,
success: function(){console.log("Success")},
error: function(){console.log("Error")}
});
i++;
});
预期结果
所以我希望按 console.log 必须按以下顺序返回日志的顺序触发事件:
- 我 = 0
- 成功或错误
- 我 = 1
- 成功或错误
实际结果
但在我运行代码后,console.log 按以下顺序返回日志
- 我 = 0
- 我 = 1
- 成功或错误
- 成功或错误
所以这意味着我的 ajax 函数在我的每个循环完成后被调用。但我不希望函数循环,除非 ajax 请求竞争。
如果您需要更多解释,请告诉我。
谢谢。
【问题讨论】:
-
Ajax 是异步的,在 async:false 模式下运行会导致不好的用户体验(浏览器会锁定直到你的循环完成,看起来你的页面已经损坏了)
-
Ajax 是异步的......嘿,打败我! +1