【发布时间】:2020-08-05 08:08:03
【问题描述】:
我在使用 ajax 异步时遇到了一些问题。我有一个数组,然后循环遍历数组以进行 ajax 调用,如果成功,ajax 将返回一个 xml 字符串,我将使用它来填写表格并更新进程栏。我使用async:false,它在 Firefox 上运行良好,但在 Chrome 上无法正常运行。我也尝试过使用$.ajax().done(),但完全没有影响。
ajax 调用完成后是否有办法获取响应的 xml 字符串然后运行下一个循环?
for (var i = 0; i <= arr.length; i++){
$.ajax({
url: '',
data: '',
async: false
}).done(function(xml) {
//get xml string to handle and put it into some table as contents
});
//Then go to next loop
}
【问题讨论】:
-
真正同步的 AJAX 已被弃用,这是有充分理由的。任何东西都不应该阻塞 UI 线程。阅读
async/await和await通话。注意it still won't be synchronous, and will never be, and you need to adjust the remaining code accordingly. -
在此处使用
await显然不是最理想的:请求 2 对请求 1 没有依赖性,因此以串行方式而不是并行方式运行它们会很慢。 -
我已经尝试过使用 async/await,它对解决我的问题真的很有帮助。非常感谢@CherryDT
标签: javascript jquery ajax asynchronous