ob_start();
for($i=0;$i<7;$i++)
{
    echo "<div>".$i.'</div><br />';
    ob_flush();
    flush();
    sleep(1);
}记得以前以上代码,是可以一行一行输出的,但是现在不行了,都是等了几秒,一下子出来的,请问各位大神,哪儿有问题呢??

解决方案 »

  1.   

    因为缓冲区一般要满了才会进行真正的输出操作,所有在处理时会经常用 str_repeat 进行空白填充,以确保能及时输出
      

  2.   

    不同浏览器 输出设置不一样iE 需要256字节 才会有输出显示,这里需要现先出 256个字节的任意东西,然后缓存分次输出显示火狐没有这个问题ob_flush() 把数据从php缓存输出到web服务器
    flush() 把数据从web服务器缓存输出浏览器
      

  3.   

    代码没有问题
    主要是服务器的问题(web服务器缓存、php输出缓存)你的 flush()、ob_flush() 只是推出了用户级缓存
    另外浏览器也有关系,你的代码不能用于 ie 兼容浏览器