php实现边执行边输出的效果
header('X-Accel-Buffering: no');//关闭nginx的缓存output_buffering = 0 ;或者 output_buffering = Off
二是PHP代码中关闭
ob_end_flush(); //或者 ob_end_clean(); //与ob_end_flush类似, //二者区别: 在下次调用flush的时候, ob_end_clean不会输出在他之前echo/print的内容, 而ob_end_flush会
三是获取buffer中的内容进行输出
ob_flush()
最后展示
header('X-Accel-Buffering: no');//关闭nginx的缓存
echo 'begin...<br>';
//方式1
ob_end_flush();//关闭缓存 数据不再存储到buffer区域中,变为等待输出状态
for($i = 1; $i <= 3; $i++)
{
echo 'loading '.$i.'0%<br>';
flush();//将等待输出的数据立刻输出到客户端
sleep(1);
}
//方式2
ob_end_flush();//关闭缓存 数据不再存储到buffer区域中,变为等待输出状态
ob_implicit_flush(1);//打开绝对(隐式) 刷送。每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用。
for($i = 1; $i <= 3; $i++)
{
echo 'loading '.$i.'0%<br>';
sleep(1);
}
//方式3
for($i = 1; $i <= 3; $i++)
{
echo 'loading '.$i.'0%<br>';
ob_flush();//获取缓存区的内容,转为等待输出状态
flush();//将等待输出的数据立刻输出到客户端
sleep(1);
}apache需要更改httpd.conf 的 FcgidOutputBufferSize 0



