在Firefox(或其他浏览器)中禁用接收缓冲区

时间:2011-08-02 15:36:57

标签: html firefox browser buffer flush

我遇到了网络浏览器缓冲问题(不是chaching)。

我称之为php脚本:

sleep(5);
echo '1st step';
echo (str_repeat(' ',256));
sleep(5);
echo '<br />';
echo '2nd step';

在php上禁用输出缓冲区(我们稍后会确认)

使用Chromium 12和Firefox 5调用此脚本时 我得到了这个结果:

<等待'动画圆圈(灰色的)在〜5秒内运行 然后'转移'动画圈(橙色)在〜5秒内运行 最后我显示了整个结果。

我的初步目标是,如您所料,等待5秒,然后看到“第一步”显示, 再次等待5秒,然后显示“第二步”。

线索信息

  • php或apache在动画圆圈切换时不会缓冲任何内容 5秒后“等待”'接收'(所以浏览器确实收到了一些东西 从“第一步”回声!)

    • 我尝试将Firefox缓存大小设置为0,以便绕过缓存机制..但仍无法正常工作。

    • 我读到有些浏览器可能会等到它们开始显示内容之前收到256个字节。这就是为什么我添加“echo(str_repeat('',256))”..但它没有解决任何问题。

    • 我还尝试在firefox中设置network.buffer.cache.count和network.buffer.cache.size选项为:about,我不知道这些选项是否与我的问题有关但是它仍然没有工作..

有什么想法吗?

谢谢,

1 个答案:

答案 0 :(得分:3)

哦,我想我需要回答一个答案,而不是评论,所以你可以接受它。

HTML5字符集嗅探缓冲区大小为512字节。因此响应需要具有512字节的填充或设置字符集(通过<meta>标记或HTTP标头)。