繁体   English   中英

为什么我的JQuery .ajax请求并不是并行的?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM