进度条无法正常工作
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 启动初始请求,然后使用第二个请求提供有关当前进程的信息。
我遇到了大问题,因为我测试了一切以使其正常工作,但还没有 :)
我得到了简单的 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 启动初始请求,然后使用第二个请求提供有关当前进程的信息。