我正在制作一个发送时事通讯的脚本。发送邮件的过程是用户单击"发送",然后向sendMail.php发送一个AJAX请求。php只是获取消息并将其发送给数据库中的所有用户。
当用户点击发送时,一个对话框也会弹出,我想要实现的是服务器将其当前进度实时发送回客户端,这样我就可以更新进度条并准确地告诉客户端所有邮件何时发送。
我不太确定我应该寻找什么或如何去做这件事。我正在使用jQuery,如果这是任何帮助
为任何模糊道歉,这对我来说是新的,所以我不确定你需要知道什么样的东西,只要问你是否需要我详细说明:)
欢呼:)
编辑:似乎有一些混乱,我不希望做一个简单的AJAX请求,我可以做到这一点。我正在努力从服务器逐渐将数据发送回客户端。
我的方法是为请求分配一个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>
查看jQuery的$.post()
功能:http://api.jquery.com/jQuery.post/。这允许您向服务器端脚本发送请求并接收实时结果。
概览如下:http://ajaxpatterns.org/Progress_Indicator
下面是一些详细的AJAX代码:http://www.redips.net/javascript/ajax-progress-bar/下面是一个显示进度条的好方法:http://docs.jquery.com/UI/Progressbar