我有需要执行多个AJAX一个页面请求 问题执行多个AJAX请求并行。该请求同时开始,但他们似乎等待其前任返回。无需等待别人来回应
可以说,page1需要大约3秒钟才能加载。第2页需要2秒加载。我得到的是,两者都在同一时间开始,page1请求在3个secons之后返回。
但问题是,5秒后页面请求返回。 这是为什么呢?我认为每个AJAX请求都会在它自己的线程中运行。那么为什么排队呢?为什么第二个人会等待第一个回应,甚至似乎开始呢?
如何管理发送请求和处理每个尽快到达应对?
$.ajax({
type: "POST",
url: 'page1.php',
data: { }
})
.done(function(data) {
console.log(data);
});
$.ajax({
type: "POST",
url: 'page2.php',
data: { }
})
.done(function(data) {
console.log(data);
});
我看到很多使用这种方法的例子。
$.when(
$.get("/resource1"),
$.get("/resource2"),
$.get("/resource3")
).done(function(response1, response2, response3) {
// do things with response1, response2 and response3;
});
但据我了解,它会尽快处理所有返回的响应。
对此有何意见?
你需要添加一个额外的属性'async:true'。如果设置async:true,那么该语句将开始执行,并且将调用下一个语句,而不管异步语句是否已完成。 – Manoj 2015-02-24 09:07:28
'async:true'是默认设置,不需要明确设置。 @Manoz – Jai 2015-02-24 09:08:18
是的,这是真的,异步默认是真实的,我已经试过这个。 – ZSchneidi 2015-02-24 09:17:11