我试图转换一个中间件(PHP类型)的页面,批量发送电子邮件到一个jQuery/Ajax页面,发送一封电子邮件的时间。它由调用ajax函数调用。我想同步地重复ajax调用,直到json响应(例如data.status =“完成”),每次调用都会返回data.percentage (完成百分比),以逐步更新一个简单的进度条。除此之外,我还想加上一个“停止”按钮来取消广播。调用页面将不知道它需要进行多少次调用。中间件将生成下一封电子邮件,并直接与SMTP主机对话,并将该电子邮件标记为已发送,计算出该电子邮件完成了多远,以便它可以发回完成百分比。
我见过这种情况的一些变体,但大多数解决方案似乎都知道如何在manu时间内循环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?
}
});
});
发布于 2017-06-29 10:00:03
var timeout = setTimeout(function () {
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
clearTimeout(timeout)
});
}, 100);
您可以尝试这样做,但是如果您想侦听某个事件的发生,则需要使用node.js和套接字。
https://stackoverflow.com/questions/44821296
复制