开发者社区> 问答> 正文

PHP被阻塞情况下输出数据 ob_flush不管用

ob_start();
for($i=0;$i<20;$i++){
    //...耗时的操作 3秒钟
    echo "ABC";
    ob_flush();
}

运行的时候,需要1分钟才能显示ABC,怎样一条条的出来,3秒钟得出来一次呀?
谢谢解答在线等~

展开
收起
小旋风柴进 2016-03-06 09:28:26 2169 0
1 条回答
写回答
取消 提交回答
  • @ob_flush();
    for($i=0;$i<20;$i++){
    //...耗时的操作 3秒钟
    echo "ABC" . str_repeat(' ', 256); //输出足以使浏览器缓冲区充满的数据(IE必须)
    ob_flush(); //推出用户缓存
    flush(); //推出系统缓存
    }

    这是利用系统的瑕疵产生的效果,应避免使用
    建议用 ajax 轮询,或 websock 推送(如果你的用户群都支持的话)

    2019-07-17 18:54:00
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载