我用jquery创建了多个异步请求,如下所示:
$.when(
$.ajax({
url: site_url_city_1,
type: "GET",
data: window.location.search,
dataType: "json",
success: function(data) {
data_1 = data;
}
}),
$.ajax({
url: site_url_city_2,
type: "GET",
data: window.location.search,
dataType: "json",
success: function(data) {
data_2 = data;
}
}),
$.ajax({
url: site_url_city_3,
type: "GET",
data: window.location.search,
dataType: "json",
success: function(data) {
data_3 = data;
}
}),
$.ajax({
url: site_url_city_4,
type: "GET",
data: window.location.search,
dataType: "json",
success: function(data) {
data_4 = data;
}
}),
$.ajax({
url: site_url_city_5,
type: "GET",
data: window.location.search,
dataType: "json",
success: function(data) {
data_5 = data;
}
})
).then(function() {
//other code
});
我希望在控制台中同时查看所有请求,但是不对。
这是我来自firebug的网页截图,你可以看到最后一个请求只在上一次完成时开始。为什么?异步请求是否有限制?
图像很少,但您可以查看最后两个不异步的请求! 第一行不是异步请求,但它是截图
我需要同时开始所有请求
答案 0 :(得分:0)
检查此SO:jQuery: Making simultaneous ajax requests, is it possible?
浏览器会在任何给定时间将您限制为两个请求。这是一部分 HTTP规范。 (HTTP 1.1规范,第8.1.4节)
答案 1 :(得分:0)
这不是一个错误。 - 这是一个功能。
根据浏览器的不同,每个域同时存在AJAX连接限制,可能还有各种方法。克服这个问题的最佳方法是将数据响应组合到尽可能少的文件中。