[英]Repeat an AJAX call Until JSON response shows process complete
我正在嘗試轉換一個中間件(PHP類型)頁面,該頁面將大量電子郵件發送到jQuery / Ajax頁面中,一次發送一封電子郵件。 通過調用ajax函數來調用。 我想同步重復ajax調用,直到json響應,例如data.status =“ finished”,每個調用將返回data.percentage(完成百分比)以逐步更新一個簡單的進度欄。 除此之外,我還想添加一個“停止”按鈕來取消廣播。 呼叫頁面不會知道需要撥打多少個電話。 中間件將生成下一封電子郵件,並直接與SMTP主機對話,並將該電子郵件標記為已發送,計算出發送的距離,以便可以將完成的百分比發回。
我已經看到了一些變化,但是大多數解決方案似乎都知道循環ajax調用的操作時間。
任何代碼片段表示贊賞。 這是我的代碼,沒有任何循環或停止代碼。
jQuery("#sendButton").click(function() {
var ezineid = jQuery("#ezineid").val() ;
var percentage = 0 ;
var status = "" ;
jQuery.ajax({ url: '/cms/emailsend.lasso',
type: 'POST',
dataType: 'json',
async: false,
data: {
ezineid: ezineid
},
success: function(data) {
// have the html to display now
percentage = data.percentage ;
status = data.status ;
// update the progress bar
// data.status = finished?
}
});
});
var timeout = setTimeout(function () {
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
clearTimeout(timeout)
});
}, 100);
您可以嘗試一下,但是如果您想監聽事件的發生,則需要使用node.js和套接字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.