通过AJAX从PHP请求更新前端


Update front end via AJAX from a PHP request

我正在制作一个发送时事通讯的脚本。发送邮件的过程是用户单击"发送",然后向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