并行ajax调用 - 像多线程系统一样的行为

时间:2014-04-24 15:04:11

标签: javascript jquery

我有一个java代码,一次处理一行csv文件。我想更新当前正在处理的记录的用户(完成1000个中的1个,完成1000个中的3个,依此类推)。这是我到目前为止编写的一段代码。第一个调用是PROCESS FILE,重复3秒的第二个调用是GET CURRENT RECORD。

$.ajax({
        type : "POST",
        url : "/service_member_import.jsp",
        aysnc: false,
        data: {
             "action":"processrecords",
             "ms": new Date().getTime()
         },   
         dataType : 'html',
        success : function(data) {
            console.log("file processed");
        },
     error: function(){
            alert("Error retrieving data");
        }
    });

setInterval(update, 3000);
update();

function update() {
      $.ajax({
            type : "POST",
            url : "service_member_import.jsp",
            data: {
                 "action":"getStatus",
                 "ms": new Date().getTime()
             },   
            dataType : 'html',
            success : function(data) {
                console.log("current data\t");
                console.log(data);
            },
         error: function(){
                alert("Error retrieving data");
            }
        });

}

目前的行为是它处理所有记录(即第一个ajax调用),然后给我处理当前记录(即第二个ajax调用)。即两个ajax调用都没有并行发生。

如果您认为有更好的方法可以实现这一点,请建议我。或者,如果我们可以使这些ajax调用并行。

2 个答案:

答案 0 :(得分:0)

看起来您的网络服务器阻止了第二个请求,直到第一个请求完成...

您需要一个非阻塞或线程服务器才能工作。

您使用的是什么平台?(Ruby / Rails,Node / Sails,PHP / Cake,Python / Django等)

答案 1 :(得分:0)

我终于想通了两个ajax电话正在进行。只是记录的数量太少,因此第一个ajax调用几乎立即完成,并且感觉第二个ajax调用仅在最后进行。

我一旦将记录增加到30,000。我可以看到第二个ajax调用在第一个ajax调用之间中断了。

感谢您的帮助:)