为什么Safari不尊重我的缓存控制指令?

时间:2010-08-30 17:48:51

标签: safari cache-control

我希望浏览器始终加载一个特定的页面,特别是当用户按下浏览器后退按钮进入时。

所以我在这个页面的标题中使用了以下'Cache-Control'指令(直接从我的代码中获取PHP)。

$headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, max-age=0';

这适用于FF,IE和Chrome,但Safari(5.0.1)似乎忽略该指令并且无法重新加载页面(跨多个用户,因此它似乎不是特定于设置的问题)。搜索没有发现任何已知的错误,所以我假设我的结果有些不妥。

任何指针都会非常感激。

更新:刚刚在SO上找到了这个答案。

Safari browser ignoring my no-cache

尚未尝试过,但看起来很有希望。很奇怪它是身体标签的补充,所以我持怀疑态度。

2 个答案:

答案 0 :(得分:5)

答案是在body标签中包含以下属性以强制Safari重新加载页面:

onunload=""

如:

<body onunload="">

我在这里找到了这个:Safari browser ignoring my no-cache

反过来从这个帖子得到它:Is there a cross-browser onload event when clicking the back button?

答案 1 :(得分:2)

另请参阅此Webkit错误报告: https://bugs.webkit.org/show_bug.cgi?id=71509

我遇到了同样的问题,似乎是Safari中的一个错误。