Joh*_*ohn 4 php sleep output-buffering
这纯粹是为了更多地了解输出缓冲而已.我想做的是将一个字符串回显给浏览器,睡10秒钟,然后回复其他内容.通常浏览器会等待整整10秒,然后发布整个结果,我该如何阻止它?一个例子:
ob_start();
echo "one";
sleep(10);
echo "two";
Run Code Online (Sandbox Code Playgroud)
faileN的答案在理论上是正确的.没有ob_flush()数据将保留在PHP的缓冲区中,并且在请求结束时隐式刷新缓冲区之前不会到达浏览器.
它仍然不起作用的原因是因为浏览器也包含缓冲区.数据现在已正确发送,但浏览器在实际启动渲染之前等待"one"之后.否则,由于连接速度慢,页面呈现会非常非常慢.
当然,解决方法(以说明它正常工作)可以一次发送大量数据(可能是一些巨大的html注释或其他内容),或者在命令行中使用curl等工具.
如果要在客户端上使用此发送/休眠周期来进行某些状态更新UI,则必须找到另一种方法(如长轮询和AJAX)
| 归档时间: |
|
| 查看次数: |
6209 次 |
| 最近记录: |