下面的代码通过一个大文件然后一个接一个地吐出来...... 但是这个糟糕的东西只是等待并等待这个6000行文件 - 浏览器状态消息“从localhost传输数据......” - 最终会这样做!
我只是好奇还有什么要做的,以避免等待,看看即时结果..
//------------------------------------------------
if (ob_get_level() == 0) ob_start();
//------------------------------------------------
echo '<pre><ol>';
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
echo '<li>' , $line , "\n";
//------------------------------------------------
ob_flush();
flush();
//------------------------------------------------
}
echo '</pre>';
fclose($handle);
//------------------------------------------------
ob_end_flush();
//------------------------------------------------
我希望浏览器立即响应 - 因为服务器处理循环中的每次迭代。
期望的结果是我应该能够看到浏览器中的文档变得越来越大,而垂直滚动条以恒定的方式变得越来越小。
答案 0 :(得分:0)
如果你想加载到屏幕,为什么要使用ob_flush? ob_flush在将其转储到屏幕之前处理所有内容。为什么不从头开始将其转储到屏幕上?