0

我正在尝试设置一个简单的进度条,但是执行“更新”,但仅在“所有”ajax 请求完成时?

请求开始;

   $(".cb-download").colorbox({
    opacity:.8,
    onComplete:function() {
        $.colorbox.resize();
        if (ERROR !== true) {
           // update Progress
           var progress = setInterval(updateProgress, 100);
      
           $.ajax({
                url: baseUrl + "/mail/do-download",
                async: true,
                success: function(data) {
                    $("#mail-download").html(data);
                    $.colorbox.resize();
                    clearInterval(progress);
                }
            });
        } else {
            $('#mail-download-success').hide();
            $('#mail-download-session-lost').show();
            $.colorbox.resize();
        }
    }
});

function updateProgress()
{
$.ajax({
    url: baseUrl + "/mail/get-progress",
    success: function(data) {
        console.log(data);
        $("#current-count").html(data);
    }
});
}

updateProgess 只是调用一个回显数字的动作。

有任何想法吗?

4

1 回答 1

0

找到我的解决方案。

PHP Session 正在锁定 Session 文件,因此第二个请求正在等待第一个请求(文件锁定)。

没有我正在使用

session_write_close(); 

当长时间运行的脚本启动时。进度现在被写入数据库/文件而不是会话。效果很好。

于 2012-09-13T10:36:27.083 回答