【问题标题】:Disable Recieving Buffer in Firefox (or other browsers)在 Firefox(或其他浏览器)中禁用接收缓冲区
【发布时间】:2011-10-18 09:11:53
【问题描述】:

我遇到了网络浏览器缓冲问题(不是 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 秒,然后看到“第 2 步”显示。

线索

  • php 或 apache 不缓冲任何东西,因为动画圆圈从 5秒后“等待”到“接收”(所以浏览器确实收到了一些东西 来自“第一步”的回声!)

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

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

    • 我还尝试在 firefox about:config 中将 network.buffer.cache.count 和 network.buffer.cache.size 选项设置为 0,我不知道这些选项是否与我的问题有关,但它还是不行。。

有什么想法吗?

谢谢,

【问题讨论】:

  • 我认为 256 数字需要是 512。或者您需要一个元标记或 HTTP 标头来声明字符集。您搞乱的缓存设置与 HTML 的缓冲无关;我强烈建议将缓冲区缓存计数和大小设置回默认值,因为那是针对ecko 的内部内存缓冲区缓存的。
  • 你是对的!我最初的信息太短了。。谢谢! (我如何将您的回复设置为好的回复?我如何关闭这个问题?我不熟悉这个论坛)
  • 我认为问题的某处应该有一个“接受”按钮。这就是你们都将我的回答设置为好的回答并结束问题的方式。我从未尝试过真正提出问题,所以不确定。 ;)

标签: html firefox browser buffer flush


【解决方案1】:

哦,我想我需要将答案设为答案,而不是评论,以便您接受。

HTML5 字符集嗅探缓冲区大小为 512 字节。所以响应需要有 512 字节的填充或设置一个字符集(通过&lt;meta&gt; 标记或 HTTP 标头)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多