下面的代码遍历一个大文件,并逐行吐出…
但是可恶的东西只是等待,等待,等待这个6000行文件-浏览器状态消息"从本地主机传输数据…"-最终会的!
我只是好奇在这里还能做些什么来避免等待和看到即时结果…
//------------------------------------------------
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();
//------------------------------------------------
我希望浏览器立即响应-服务器处理循环中的每个迭代。
期望的结果是,我应该能够看到浏览器中的文档变得越来越大,而垂直滚动条以恒定的方式变得越来越小。
如果你想让它加载到屏幕上,为什么要使用ob_flush呢?Ob_flush处理所有内容,然后将其转储到屏幕上。为什么不从一开始就把它放到屏幕上呢?