0
當前點擊我的應用程序中的鏈接之一,觸發AJAX調用(GET) - 如果成功 - 觸發第二個和第二個 - 如果成功 - 調用第三個。jQuery AJAX鏈接調用+芹菜在Django
通過這種方式,用戶可以獲知單擊鏈接時當前正在進行哪部分流程。
所以在Django項目模板文件,單擊回調身體鏈接類似下面的外觀:
$("#the-link").click(function(item)) {
// CALL 1
$.ajax({
url: {% url ajax_call_1 %},
data: {
// something
}
})
.done(function(call1Result) {
// CALL 2
$.ajax({
url: {% url ajax_call_1 %},
data: {
// call1Result passed here to CALL 2
}
})
.done(function(call2Result) {
// CALL 3
$.ajax({
url: {%url ajax_call_3 %},
data: {
// call2Result passed here to CALL 3
}
})
.done(function(call3Result) { // expected result if everything went fine
console.log("wow, it worked!");
console.log(call3Result);
})
.fail(function(errorObject) {
console.log("call3 failed");
console.log(errorObject);
}
})
.fail(function(errorObject)) {
console.log("call2 failed");
console.log(errorObject);
}
})
.fail(function(errorObject) {
console.log("call1 failed");
console.log(errorObject);
});
});
這對我工作得很好。事情是,我想防止打斷以下電話如果用戶關閉瀏覽器和調用沒有完成(因爲這將需要一些時間來完成所有三個),因爲有一些額外的邏輯在在每個GET請求中調用Django視圖函數。
例如,如果用戶在CALL 1期間點擊鏈接並關閉瀏覽器,是否有可能以某種方式繼續進行以下CALL 2和CALL 3?
我知道通常我可以使用芹菜任務來處理函數,但在這裏提到的鏈式調用仍然可以嗎?
任何幫助非常感謝!
如果可能的話,這將是DoS攻擊的一大特性 –