jQuery $ .ajax循环假定异步请求

时间:2015-09-05 16:25:01

标签: javascript php jquery ajax node.js

我需要通过$ .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,它将变量iv传递给gethttp()以获取HTTP请求。

$(document).ready(function() {
    $.each(requests, function(i, v) {
        gethttp(i, v);
    });
});

但是,此过程最多可能需要5分钟,具体取决于我的requests数组的大小,该数组的长度范围可以介于5-500个项目之间。我的思维过程是这需要大约2秒,因为每个HTTP请求本身都需要很长时间,但是通过像上面那样循环遍历,请求按顺序执行,整个过程需要永久。

我是否需要使用node.js进行部署以获得并行处理?如果是这样,我真的很感激这个主题的好教程。我可以使用jQuery本身而不使用node.js吗?

谢谢

0 个答案:

没有答案