关于浏览器缓存的问题

1. 浏览器缓存问题一般通过在http头里添加cache-control 可以控制

对于一般的浏览器,只要cache-control: no-cache ,这样浏览器的后退也不会走cache了,但是firfox就不行,需要 cache-control: no-cache, no-store

后来由遇到了safari,对于后退按钮,no-store 也不要使了,官方的解释是在页面里添加一个iframe,只要有iframe,后退就不会走cache了

 

相关文章:

————–如何禁止页面在safari中缓存—————————————————

基本上safari会缓存所有页面以便加速访问。如果要禁止页面在safari中缓存,常用的header肯定要加上的

<?php

header(”Expires: Mon, 26 Jul 1997 05:00:00 GMT”); // Date in the past

header(”Last-Modified: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”); // always modified

header(”Cache-Control: no-store, no-cache, must-revalidate, max-age=0″); // HTTP/1.1

header(”Cache-Control: post-check=0, pre-check=0″, false);

header(”Pragma: no-cache”); // HTTP/1.0

?>

加上上面这些header,可以让页面在大多数浏览器中都不缓存。但还是有个问题,上面的代码对safari的前进和后退不起作用,safari还是会在缓存里面读取数据。要做到完全禁止,根据官方的Safari Developer FAQ,还需要在页面中加上一个iframe。加上iframe后的页面,safari永远不缓存。

<iframe style=”height:0px;width:0px;visibility:hidden” src=”about:blank”>

this frame prevents back forward cache

</iframe>

——————————————————————————————-

 

相关文章2:

http://www.apple.com.cn/developer/internet/webcontent/safari_faq.html

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据