[英]Wait unitl ajax and its callback function finish
我正在構建一個Web應用程序,該應用程序允許用戶同時執行許多操作。 例如,用戶可以打開列表,刪除列表或添加新列表。
每個操作都會進行ajax調用,並執行回調函數以在成功后更新UI。 我想確保以串行方式執行這些操作,以使UI不會不同步。 例如,如果用戶打開一個列表,但是在一秒鍾之內刪除列表,這取決於首先執行哪個ajax調用,則它可能會顯示應該立即刪除的列表。
要做到這一點,每一個動作,我想等到一個Ajax調用及其回調函數完成。 我該如何實現?
使用Jquery時,您可以在Ajax調用中添加async: false
或使用Jquery deferred來確保僅在Ajax調用完成后才發出操作(假設您使用Jquery)。
如果您有多個Ajax請求,則示例如下所示:
$.ajax({url: url}).pipe(function() {
// some ajax stuff
return $.ajax({});
}).pipe(function() {
// some more ajax stuff (3rd request)
return $.ajax({});
}).done(function() {
// done with all ajax requests...
});
如果您使用的是jQuery, .always()
在.done()
/ .fail()
之后調用.always()
回調。
$.ajax("example.php")
.done(function() {
alert("success");
})
.fail(function() {
alert("error");
})
.always(function() {
alert("complete"); //Called after done/fail callbacks
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.