使用PHP禁用IE和Firefox缓存
有很多方法可以找到网络的速度,最终它被解决了。最简单的方法是给头部贴上标签。
它也可以通过程序来控制。
复制代码代码如下所示:
< PHP
标题(缓存控制:没有缓存,没有商店,must-revalidate);
标题(杂注:无缓存);
标题(过期:0 );
>
If it is in or header (Cache-control:no-cache, no-store, must- revalidate); less no-store will not solve the caching of Firefox
以下是具体的分析:
Firefox和IE浏览器缓存的两个重要区别
当您构建了Web服务时,通常需要配置两种类型的缓存:
更新站点后,HTML资源立即过期,这样您所浏览的用户就可以快速更新。
设置所有其他资源(如图片、CSS、Javascript脚本)在某一时间到期。
这个缓存方案涵盖了如何处理HTTP缓存文章的两条简单规则中的更新的一些想法。
现在HttpWatch 6支持Firefox,我们想探讨在处理缓存Firefox和IE的区别。设置长时间(秒以上)的方法仍然可以直接应用于Firefox,但是配置1在它们之间略有不同。
在前一篇文章中,我们将第一篇文章分成:
有时,即使使用后退按钮,动态HTML页面也需要立即从服务器更新到显示状态。例如,显示银行帐户或在线订单的状态。
静态的HTML页面,如链接、常见问题解答、地图,等等,如果他们设置Last-Modified头,允许浏览器重新检查需要时,他们可以使用缓存。
本文的其余部分将检查影响Firefox中html页面缓存的两个重要差异。
1。使用无缓存防止Firefox缓存无效
您可以简单地设置以下响应头以防止IE缓存:
缓存控制:无缓存
使用此响应头的页面不会存储在缓存中。IE将永远从服务器加载。即使你使用后退按钮,下面的例子听HttpWatch在线商店。当我们提交订单时,单击后退按钮,结果如下:
但是,这并不能阻止Firefox响应头缓存。这意味着Firefox在正常访问条件下将始终使用缓存页面,直到它发送一个GET请求进行重新检查。而且,如果要通过后退按钮访问页面,Firefox不会再次访问服务器,而是直接从缓存中访问。
我们如何关闭Firefox缓存的答案很简单,不关。因为Firefox依赖于缓存中的副本作为文件>
下面的响应头可以防止Firefox中的持久缓存,迫使页面在内存中缓存:
缓存控制:不存储
当使用后退按钮时,这个头也阻止了对缓存页的访问,并且它将触发一个HTTP GET请求。
在IE和Firefox中,可以使用这两个响应头的组合使用:
缓存控制:无缓存,无存储
如下HttpWatch响应标头标签如下:
2。如果你没有设置Firefox的到期时间,为你设置一个IE遇到没有到期HTTP响应时,它相信永远不能自动使用缓存条目,直到它再次从服务检查。由于临时文件ie设置检查是一个较新版本的默认为自动 ,通常是一个会话再次做它。
这提供了一种合理的方法来控制静态HTML内容的缓存。新打开的IE将获得最新版本的HTML,在关闭IE之前,将使用缓存的版本。
Firefox处理掉过期头的方法。如果有Last-Modified头的影响,它将使用HTTP 1.1规范中指定一个过期的值用来试探。
(引用规范:)
此外,如果响应中有最后一个修改的时间值,则暂定过期值不能超过该值与当前时间间隔的比率。这个比率一般是10%。
计算方法如下:
过期时间=当前时间+ 0.1 *(上次修改到现在时间差)
例如,如果您的静态HTML文件上次修改100天前,到期日期是10天以后。下面的例子是一个HttpWatch缓存标签没有Expires头页。
图
Firefox自动设置到期时间为8天,因为该页面没有被修改约80天。
这意味着为了保持HTML页面的控制,正如我们在两个HTTP缓存的简单规则中讨论的,您最好为静态资源设置适当的过期值,如HTML、图片、CSS文件等。
结论
为了确保IE与Firefox的缓存行为一致,您应该:
总是分配过期头。一般设置为1,使用HTML页面立即刷新,或为其他图像、CSS和Javascript脚本资源设置特定的过期时间。
如果要强制页面刷新,甚至单击后端按钮,则设置缓存控件:不缓存,不存储。