构建Progressbar的JQuery问题

时间:2012-09-12 11:16:58

标签: jquery ajax

Iam尝试设置一个简单的Progress-Bar,但是会执行“更新”,但只有当“所有”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只是调用一个回复数字的动作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

找到我的解决方案。

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

没有使用

session_write_close(); 

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