为什么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
有没有尝试过,但看起来很有希望。很奇怪,它是身体标记的补充,所以我很怀疑。
答
答案是包括在body标签下面的属性,迫使Safari浏览器重新加载页面:
onunload=""
如:
<body onunload="">
我发现这个在这里:Safari browser ignoring my no-cache
然后从这个线程得到它:Is there a cross-browser onload event when clicking the back button?
你究竟如何发送这些头文件? – quantumSoup 2010-08-30 17:51:59
其实,WordPress发送它们。我通过使用WordPress过滤器钩子来添加它们。 – Greg 2010-08-30 18:05:59