【问题标题】:progress bar in php & jqueryphp & jquery 中的进度条
【发布时间】:2012-05-19 20:41:00
【问题描述】:

我有一个发送 X 邮件的 PHP 进程 每次发送邮件后,我都会在数据库中添加一行以告知已发送邮件。

所以,我不想创建一个进度条来告诉用户 X 邮件是在 Y 发送的(Y = 总数)

我有两个这样的 jquery 函数:

function mail_send()
{
    $('.loading').css('display','block');
    $.ajax({
        'url': '/an/url/', 
        'data': {
                    someParam: param
                },
        'beforeSend':function()
                    {
                        $('#loadingBg').append('<span id="count"></span>');
                        setTimeout(function () {
                            mail_updateProgress(id);
                        }, 500);
                    }

        , 
        'success':  function (data,textStatus)
                    {
                       (....)
                    }
    });
}

function mail_updateProgress(id) {
    $.ajax({
        'url': '/an/url/', 
            'data': {
                        someParam: param
                    },
        'success':  function (data) {
                        var res = $.parseJSON(data);
                        $('#count').html(res.nbSended + '/' + res.total);
                    }
    });
}

问题是我现在不能发送超过 15 封邮件,我不会创建 XXX 邮件地址来测试它,但是 updateProgress() 函数只成功了一次,而且它发生在同一时间mail_send() 函数。

有错误吗?

谢谢

编辑: 好的,所以 setInterval 很好,但我还有第二个问题,$.ajax 有队列吗? 我正在登录 3 件事: first : 当进程进入 updateProgress 函数时 第二:当updateProgress ajax成功时 第三:当 mail_send() ajax 成功时

日志的顺序是

第一次(X 次) 第三次(1次) 秒(X 次)

所以,我的进度条永远不会进步,只是在发送功能结束时使 0% => 100%

在发送函数的同时处理进度函数有什么想法吗? 可以委托吗?

【问题讨论】:

  • id 变量的意义何在?您似乎没有在任何地方使用它 - 您没有向我们展示更多代码吗?
  • 我已经“修改”了我的代码给你看,我真的在使用它;)
  • 您可能希望将 updateProgress 移至成功?你为什么要在发送前检查它?你如何发起mail_send
  • 我在开始我的 send() ajax 之前初始化我的 setInterval,但我想每 500 毫秒检查一次进度

标签: php jquery zend-mail


【解决方案1】:

您正在使用 setTimeout 如果您想进行间隔检查,请使用:setInterval

【讨论】:

  • SetInterval 没问题,但我还有第二个问题,只有当 newsletter_send() ajax 结束时才会调用 mail_updateProgress() 成功
  • 很高兴看到一些服务器端代码,看看是否有什么东西导致进度更新器-request 等到所有邮件都被处理完。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 2012-03-18
  • 2012-04-29
  • 2016-04-24
  • 2022-01-08
相关资源
最近更新 更多