flush失效,不能实时显示数据到浏览器

salmonl 2018-11-17 12:22:06

echo str_repeat(' ', 102400);
echo 11;
ob_flush();
flush();
sleep(3);
echo 22;


如上代码,flush了缓冲区,Mac 下Chrome请求同时返回1122,期望是先输出11,隔3秒后输出22。

其中php.ini中buffer设置:

output_buffering = 4096


webserver nginx中nginx.conf中buffer设置为默认值:

fastcgi_buffer_size 4k|8k


查资源显示chrome浏览器buffer大小是1024, 可是设置了102400也没有预期输出,很是困惑,真诚的希望懂的朋友解惑。
...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
salmonl 2018-11-17
  • 打赏
  • 举报
回复
检查Nginx conf中gzip是默认off状态
salmonl 2018-11-17
  • 打赏
  • 举报
回复
测试发现需要先echo 非空字符,然后输出4014字节即可,已解决。具体说明参考个人博客niliu.me, 搜索php缓冲机制。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧