进度条无法正常工作

Progress bar not working flush

我遇到了大问题,因为我测试了一切以使其正常工作,但还没有 :)

我得到了简单的 for 循环,里面有一个星号、结束、刷新,但我的浏览器仍然加载了循环和 of 循环的所有输出,我拿这个问题简单的例子:

<?php

if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<10; $i++){

    echo "<br> Line to show.";
    echo str_pad('',4096)."\n";    

    ob_flush();
    flush();
    sleep(2);
}

echo "Done.";

ob_end_flush();
?>                              

a i`vd 设置所有关于 outpuuting_bufforing、zlib、gzib 和其他所有内容。 Exacly 在 htacces、脚本、文件中,甚至在 php.ini、apache 中。我有专用服务器,所以可以配置我需要的东西。有人能告诉我我还能尝试什么吗? Ofc 任何日志文件中都没有错误。

谢谢指教!

官方 PHP 文档中对 ob_flush() 的评论提到,大多数浏览器在加载内容时采用全有或全无的方法。因此,在整个页面加载完成之前,浏览器不会显示任何内容。

http://php.net/manual/de/function.ob-flush.php#109699

这意味着将输出刷新到浏览器对您不起作用。

另一种方法是通过 AJAX 启动初始请求,然后使用第二个请求提供有关当前进程的信息。