Javascript 并行ajax调用-类似多线程系统的行为

Javascript 并行ajax调用-类似多线程系统的行为,javascript,jquery,Javascript,Jquery,我有一个java代码,一次处理一行csv文件。我想用当前正在处理的记录来更新用户,比如(完成1000条中的1条,完成1000条中的3条等等)。这是我到目前为止写的一段代码。第一个调用是进程文件,第二个重复3秒的调用是获取当前记录 $.ajax({ type : "POST", url : "/service_member_import.jsp", aysnc: false, data: { "action"

我有一个java代码,一次处理一行csv文件。我想用当前正在处理的记录来更新用户,比如(完成1000条中的1条,完成1000条中的3条等等)。这是我到目前为止写的一段代码。第一个调用是进程文件,第二个重复3秒的调用是获取当前记录

$.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调用)。ie两个ajax调用不是并行进行的


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

看起来您的Web服务器正在阻止第二个请求,直到第一个请求完成

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


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

我终于发现这两个ajax调用是并行进行的。只是记录的数量太少了,因此第一个ajax调用几乎立即完成,并给人一种感觉,第二个ajax调用只是在最后进行的

当我把记录增加到30000的时候。我可以看到第二个ajax调用确实在第一个ajax调用之间中断了


感谢您的帮助:)

它的前端引导+后端的java。用于其jquery的交互。我没有使用node/php或任何东西。如果你建议我使用node.js,你能告诉我我的java代码将如何与node.js集成吗?从昨天开始,我一直在尝试node.js,最终放弃了使用2个ajax调用。那么,您的Java服务器似乎是以单线程/阻塞方式运行的。对不起,我不熟悉Java服务器。至于Node.js,它根本没有“直接”与Java集成。Java和JavaScript甚至不是一回事。但我确实认为Node.js对于您的工作是一个不错的选择。如果您想开始使用Node.js,请查看Yes,我已经用java编写了处理代码+验证+数据库代码。因此,这只是对我的java方法的一次调用。但是现在有了这个调用,我甚至想用正在处理的当前记录更新用户。此外,如果我使用node.js,我必须将java代码转换为js?是的,您必须将其全部转换……我可能会看看是否有办法以线程模式运行我的服务器。我猜你正在使用webring或jetty。检查文档……是的,但是即使我在多线程模式下运行服务器,我如何收集回复,因为ajax调用是单线程的。