jQuery:同时发出ajax请求,有可能吗?

21 ajax jquery

我正在使用jQuery同时尝试检索多个数据.要求的背景是不同的数据位需要不同的时间才能变得可用,因此我希望在返回时显示每个部分.

问题是请求似乎"排队"; 下一个请求直到前一个请求返回为止.经过广泛阅读后,似乎选项'async:false'可能就是我所追求的,但这似乎没有任何区别.

从TCP/IP调试我可以看到浏览器不会启动多个连接; 它在先前请求返回时使用相同的连接.

我在我的时间里看到很多网站同时在ajax上加载数据,所以很明显它是可能的,但是我正试图让我的头发工作.

这是我的代码:

$.ajax({
    type: "GET",
    async: false,
    url: "foo1.php"
    });
$.ajax({
    type: "GET",
    async: false,
    url: "foo2.php"
    });
$.ajax({
    type: "GET",
    async: false,
    url: "foo3.php"
    });
Run Code Online (Sandbox Code Playgroud)

cgp*_*cgp 16

你想要异步(这是默认的).浏览器会在任何给定时间将您限制为两个请求.这是HTTP规范的一部分.(HTTP 1.1规范,第8.1.4节)

将请求放入队列是您的最佳选择.

我应该注意,这可以在Firefox和其他一些浏览器中被覆盖.(但因为它不标准,它对你没什么帮助)

  • 谢谢.你让我不再寻找从未出现问题的地方.事实证明这与PHP及其顺序处理由于会话锁定而使用相同会话变量的请求的方式有关(为什么它没有锁定写入,而不是在整个执行过程中看起来很疯狂).无论如何,一个非常简单的'session_write_close()'修复了一切.干杯. (18认同)
  • @Monty好的工作指出PHP问题和session_write_close() - 为我工作 - 谢谢! (3认同)
  • 刚刚找到这个并解决了我自己的同时ajax问题,这要归功于会话变量的问题.全部谢谢,++++! (3认同)