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

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

问题描述:

有一个特定的页面,我希望浏览器始终加载,特别是当用户按下浏览器后退按钮来加载时。为什么Safari不尊重我的缓存控制指令?

所以我在这个页面的头部使用下面的'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

有没有尝试过,但看起来很有希望。很奇怪,它是身体标记的补充,所以我很怀疑。

+0

你究竟如何发送这些头文件? – quantumSoup 2010-08-30 17:51:59

+0

其实,WordPress发送它们。我通过使用WordPress过滤器钩子来添加它们。 – Greg 2010-08-30 18:05:59

答案是包括在body标签下面的属性,迫使Safari浏览器重新加载页面:

onunload="" 

如:

<body onunload=""> 

我发现这个在这里:Safari browser ignoring my no-cache

然后从这个线程得到它:Is there a cross-browser onload event when clicking the back button?

也看到这个Webkit的错误报告: https://bugs.webkit.org/show_bug.cgi?id=71509

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