-2

我有以下疯狂的片段作为 ob_start 功能的测试场。

ob_start();
for ($i = 1; $i <= 100000000; $i++) {       
    echo '<li>',$i, ' ',date("H:i:s");
    ob_flush();
}

我等了几分钟才能在屏幕上看到一些东西。几分钟后,我查看了一个空白页面,其中显示状态消息“等待 www.myserver.com”,浏览器标题上显示“正在加载...”消息。

ob_flush 不是完全防止这种行为吗?

你对上面的代码片段做了什么,这样当你运行它时,你会在浏览器上得到一个即时的文本流?

4

1 回答 1

1

添加行

flush();

紧接着

    ob_flush();

成功了。浏览器会立即显示输入,并且您会收到流式文本,直到转储到浏览器或脚本上的整个内容超时。

不要尝试这个片段,因为它会浪费很多带宽。

有谁知道为什么在 ob_flush 之后添加 flush() 使它发生?

注意,只有没有 ob_flush() 的 flush() 或没有 flush() 的 ob_flush() 不起作用。

于 2012-08-13T08:18:10.283 回答