[英]Why aren't my JQuery .ajax requests being made in parallel?
我试图使用jQuery并行制作两个ajax请求,如下所示:
var sources = ["source1", "source2"];
$(sources).each(function() {
var source = this;
$.ajax({
async: true,
type: "POST",
data: {post: "data", in: "here"},
url: "/my/url/" + source,
success: function(data) {
process_result(data);
}
});
});
我从这个问题得到了基本结构,但我的要求仍然不是并行的。 “source1”需要一段时间才能完成,我可以在服务器上看到第二个请求在第一个请求完成之前没有进行。
据我所知,我没有任何其他活动请求,所以我认为这对浏览器的最大并行请求数没有问题。 我在这里错过了什么吗?
jQuery不会对AJAX请求进行排队。 如果您确定自己没有提出任何其他要求,服务器怎么样? 也许它只有一个工人?
编辑 :只是为了确保,我用一个脚本测试它,向脚本启动2个AJAX POST请求,睡眠时间为5秒。 他们没有排队。
你在用PHP吗? 你在使用session_start()吗? 会话无法通过多个请求并行打开,他们将一个接一个地等待完成他们正在做的事情。
如果您使用$ .post而不是$ .ajax会怎么样? 这适合我。
var sources = ["source1", "source2"];
$(sources).each(function() {
var source = this;
$.post("/my/url/" + source, {post:"data", in:"here"}, function(data) {
process_result(data);
});
)};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.