在 Firefox(或其他浏览器)中禁用接收缓冲区
Posted
技术标签:
【中文标题】在 Firefox(或其他浏览器)中禁用接收缓冲区【英文标题】:Disable Recieving Buffer in Firefox (or other browsers) 【发布时间】: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 的内部内存缓冲区缓存的。 你是对的!我最初的信息太短了。。谢谢! (我如何将您的回复设置为好的回复?我如何关闭这个问题?我不熟悉这个论坛) 我认为问题的某处应该有一个“接受”按钮。这就是你们都将我的回答设置为好的回答并结束问题的方式。我从未尝试过真正提出问题,所以不确定。 ;) 【参考方案1】:哦,我想我需要将答案设为答案,而不是评论,以便您接受。
HTML5 字符集嗅探缓冲区大小为 512 字节。所以响应需要有 512 字节的填充或设置一个字符集(通过<meta>
标记或 HTTP 标头)。
【讨论】:
以上是关于在 Firefox(或其他浏览器)中禁用接收缓冲区的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firefox 开发者版中禁用新的 JSON 查看器/阅读器?
如何禁用Chrome / Firefox /IE浏览器的Cookie
百度搜素时,火狐显示“此问题可能是因为禁用或拒绝 Cookie 导致”