我正在创建一个发送简报的脚本。发送邮件的过程是用户点击“发送”,并将AJAX请求发送到sendMail.php。 SendMail.php只接收消息并将其发送给数据库中的所有用户。
当用户点击发送时,会弹出一个对话框,我想要实现的是服务器实时将其当前进度发送回客户端,以便我可以更新进度条并告诉客户端何时全部邮件已发送。
我不确定我应该寻找什么或如何去做这件事。如果这是任何帮助我正在使用jQuery
对于任何含糊不清的道歉,这对我来说是新的,所以我不确定你需要知道什么样的东西,只要问你是否需要我详细说明:)
干杯:)
编辑:似乎有些混乱,我不打算做一个简单的AJAX请求,我可以做得很好。我正在努力的是从服务器递增地将数据发送回客户端。答案 0 :(得分:1)
我的方法是为请求分配UUID。服务器应使用UUID作为密钥更新会话进度。 然后,Javascript可以使用ajax jquery接口重复查询服务器以获取进度。
因此整个脚本看起来像这样(伪代码)
<script>
function pollServer(uuid)
{
$.ajax({
url:'/pollProgress',
// the response is the progress
success:function(result){
if (progress == 100) { ... /* finish */ }
else
{
... // update the progress somewhere.. for example $("#progress").text(result)
setTimeout(function(){pollServer(uuid)},100);
}
}
}
// first request to server will be the "send" request
$.ajax({
url:'/sendMail',
// the server should send the UUID as the result
success:function(result){ pollServer(result)}
})
</script>
答案 1 :(得分:0)
在此处查看jQuery的$.post()
功能:http://api.jquery.com/jQuery.post/。这允许您向服务器端脚本发送请求并接收实时结果。
答案 2 :(得分:0)
以下是概述: http://ajaxpatterns.org/Progress_Indicator
这是一些详细的AJAX代码: http://www.redips.net/javascript/ajax-progress-bar/
这是显示进度条的好方法: http://docs.jquery.com/UI/Progressbar