1

<?php
echo 'first<br>';
ob_flush();
flush();
file_get_contents("http://ttt.tt");
echo "second";

http://ttt.tt无法访问。所以在浏览器中我们可以看到输出“first”,然后等待“30s”/每个脚本的最大执行时间/将输出“second”。在 IE、FF 下运行正常。
但是在chrome中,“first”&&“second”会一起输出。

我的英语不好。我不知道你是否明白。帮助!!!

我还尝试像这样禁用浏览器的缓存:
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

但是问题依然存在。。

4

3 回答 3

1

您不需要禁用缓存。这都是关于内容类型编码的。我所做的只是:

header('Content-Type: text/html; charset=UTF-8');

最初是:

header('Content-Type: text/html');

......这没有用。指定“ charset=UTF-8 ”会立即强制 Chrome 呈现分块响应。

于 2012-06-26T14:49:40.240 回答
0

问题可能是“Pragma: no-cache”不会每次都起作用。HTTP 规范没有为 Pragma 响应标头设置任何准则。尝试使用“过期”。

如果您需要更多信息,这里是Web 缓存教程的链接

于 2012-05-25T10:03:57.090 回答
0

一种选择是添加X-Content-Type-Options: nosniff.

有关详细说明,请参阅分块传输编码 - 浏览器行为

于 2019-05-11T10:17:11.823 回答