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只是调用一个回复数字的动作。
有什么想法吗?
答案 0 :(得分:0)
找到我的解决方案。
PHP会话锁定了Session文件,因此第二个请求正在等待第一个请求(文件锁定)。
没有使用
session_write_close();
当长时间运行的脚本启动时。现在,Progress已写入数据库/文件而不是会话。效果很好。