我有需要執行多個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