2013-08-23 36 views
0

我正在處理一個端點很差的端點......所以請理解,我將無法更改此端點的行爲方式。在一個序列中使用jquery創建多個ajax

這個ajax調用是:POST/doStupidThing /。

給定一個ID列表,我需要爲每個ID調用端點。 如何確保在前一個呼叫完成之前呼叫未被觸發?我應該將async設置爲false嗎?

+0

爲什麼要在這種情況下禁用異步處理,有更多的調用正是您希望利用異步處理的地方。如果數字太大,我可以理解你可能需要限制併發連接的數量,但似乎倒退給我。 –

+0

後端代碼不是線程安全的。 – user2712654

回答

0

是的,你可以嘗試設置異步爲false

0

Just for the record, the better way to do things would be to set yourself up to use the Jquery promise interface

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() 
     } 
}