我正在處理一個端點很差的端點......所以請理解,我將無法更改此端點的行爲方式。在一個序列中使用jquery創建多個ajax
這個ajax調用是:POST/doStupidThing /。
給定一個ID列表,我需要爲每個ID調用端點。 如何確保在前一個呼叫完成之前呼叫未被觸發?我應該將async設置爲false嗎?
我正在處理一個端點很差的端點......所以請理解,我將無法更改此端點的行爲方式。在一個序列中使用jquery創建多個ajax
這個ajax調用是:POST/doStupidThing /。
給定一個ID列表,我需要爲每個ID調用端點。 如何確保在前一個呼叫完成之前呼叫未被觸發?我應該將async設置爲false嗎?
是的,你可以嘗試設置異步爲false
This SO answer covers this in more detail and talks about deferred objects.
一個你可以做的事情是讓你.done功能你的下一個Ajax調用。
function SecondAjax() {
$.ajax({
type: "POST",
url: "example.php",
data: data_obj,
dataType: "html"
}).done(function(msg) {
#You can put a third one in here
#This should also give you an idea of how to loop.
}
}
function firstAjax() {
$.ajax({
type: "POST",
url: "example.php",
data: data_obj,
dataType: "html"
}).done(function(msg) {
SecondAjax()
}
}
爲什麼要在這種情況下禁用異步處理,有更多的調用正是您希望利用異步處理的地方。如果數字太大,我可以理解你可能需要限制併發連接的數量,但似乎倒退給我。 –
後端代碼不是線程安全的。 – user2712654