【发布时间】:2017-06-26 10:19:43
【问题描述】:
我希望对处理我发布的单词的 SQL 插入的页面进行同步调用。但是,由于我有很多块并且 SQL 不是异步的,我希望一个接一个地处理每个 ajax 调用/块
for (chunk = 1; chunk <= totalchunks; chunk++) {
$.ajax({
type: "POST",
dataType: "json",
url: "updateHandle.php",
data: {words:arr.slice(1000*(chunk-1),1000*chunk),push:getpush},
success: function(){
console.log('Items added');
},
error: function(){
console.log('Errors happened');
}
});
}
async: false,
由于某种原因不起作用。每个 ajax 调用总是转到错误案例而不是成功案例。那么我忽略了这个问题还有另一种解决方案吗?
我考虑过使用忙等待的 while 循环并使用锁,但 setTimeout() 函数没有按预期工作(可能是我的一些错误)
编辑:对于一个 AJAX 调用来说,块太大了,因此需要序列化。此外,块的数量可能会因调用而异,因此需要灵活性。
【问题讨论】:
-
XMLHttpRequest API 怎么样?
-
@VitaliyVinnychenko 嗯? $.ajax 只是一个围绕 XMLHttpRequest 的 jQuery 包装器。您还有什么建议可以使用本机 XHR 而不是 jQuery 来完成吗?
-
"每个 ajax 调用总是转到错误情况,而不是成功情况。" ——所以调试它?注意传递给错误函数的参数。查看控制台是否有错误。查看“网络”选项卡,了解请求和响应的实际情况。
-
@Igor — 这似乎与这里描述的问题无关。
-
不推荐使用同步 AJAX 请求。看看this。
标签: javascript ajax asynchronous