Javascript 并行ajax调用-类似多线程系统的行为
我有一个java代码,一次处理一行csv文件。我想用当前正在处理的记录来更新用户,比如(完成1000条中的1条,完成1000条中的3条等等)。这是我到目前为止写的一段代码。第一个调用是进程文件,第二个重复3秒的调用是获取当前记录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"
$.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调用是单线程的。