繁体   English   中英

php&jquery中的进度条

[英]progress bar in php & jquery

我有一个PHP进程发送X邮件每次发送邮件后,我在数据库上添加一行,告诉我发送邮件。

所以,我不想创建一个进度条告诉用户X上的X邮件被发送(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件事:第一:当进程在updateProgress函数上输入第二:当updateProgress ajax成功第三时:当mail_send()ajax成功时

日志的顺序是

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

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

任何想法在发送功能时处理进度功能? 是否可以委派?

您正在使用setTimeout如果您想要间隔检查使用: setInterval

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM