我正在使用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"
});
答案 0 :(得分:16)
您想要异步(这是默认设置)。浏览器会在任何给定时间将您限制为两个请求。这是HTTP规范的一部分。 (HTTP 1.1 specification, section 8.1.4)
将请求放入队列是最佳选择。
我应该注意,这可以在Firefox和其他一些浏览器中覆盖。 (但因为它不是标准,它对你没什么帮助)
答案 1 :(得分:3)
浏览器限制您同时发出两个请求。您可能想要使用队列管理器,如下所示: http://www.protofunc.com/scripts/jquery/ajaxManager/