我在javascript中有一个项目数组,对于每个项目,我必须向url发送一个ajax帖子,以获取相应的信息并在容器中显示信息。代码大致如下:
var data = some_data;
array.forEach(item, idx)=> {
callAjaxAndUpdate(data, item, $('div#container'+i);
});
ajax方法很简单
var standardUrl = 'https://example.com/post.php';
function callAjaxAndUpdate(data, item, container) {
$.ajax({
url: standardUrl
data: data,
type: 'POST',
}).done(function(res) {
container.append(res.data);
}).fail(function(res) {
container.append(res.responseText);
}).always(function() {
container.append('DONE!');
});
}
然而,整件事似乎都成了障碍。我在服务器端记录了时间戳,我可以看到,只有在前一个项目的ajax请求完成(总是执行部分)之后,才会触发每个项目的ajax请求。
有人能帮我解释一下为什么这个设置是同步的,以及如何使它异步吗?请注意,此脚本是在浏览器中执行的,而不是在nodejs上。
编辑:
结果,是php后端以阻塞的方式处理请求。也许这次会议是罪魁祸首。我现在就结束这个问题。谢谢你的帮助和建议。