我需要通过$ .ajax向外部服务器发出多个HTTP请求,据我所知,这应该是异步的,这意味着多个HTTP请求在执行另一个请求之前不会等到前一个请求完成。
然而,我发现在实践中,这并没有成功。我有这个功能:
function gethttp(i, v) {
var data = new FormData();
data.append("raw", v.raw);
$.ajax({
url: "gethttp.php?cache=" + Math.random(),
type: "POST",
data: data,
cache: false,
dataType: "json",
processData: false,
contentType: false,
success: function(data, textStatus, jqXHR) {
renderdata(i, data);
},
error: function(jqXHR, textStatus, errorThrown) {
renderdata(i, {found: "0", bibs:""});
apply(i, "danger", false);
console.log(jqXHR);
}
});
}
然后我使用$ .each迭代数组requests
,它将变量i
和v
传递给gethttp()
以获取HTTP请求。
$(document).ready(function() {
$.each(requests, function(i, v) {
gethttp(i, v);
});
});
但是,此过程最多可能需要5分钟,具体取决于我的requests
数组的大小,该数组的长度范围可以介于5-500个项目之间。我的思维过程是这需要大约2秒,因为每个HTTP请求本身都需要很长时间,但是通过像上面那样循环遍历,请求按顺序执行,整个过程需要永久。
我是否需要使用node.js进行部署以获得并行处理?如果是这样,我真的很感激这个主题的好教程。我可以使用jQuery本身而不使用node.js吗?
谢谢