【问题标题】:Prevent caching of pages in Internet Explorer 8防止在 Internet Explorer 8 中缓存页面
【发布时间】:2012-06-18 11:44:41
【问题描述】:

在我的 IE8 页面上,我有一些文本可以通过管理面板进行更改。例如:如果页面包含文本“hello world”,则 5 分钟后文本可能会有所不同,具体取决于管理员是否更改了它。

问题在于 IE8 缓存页面并再次显示相同的文本。如果我们清除缓存并刷新,文本就会更新。

我正在使用<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 标签来避免浏览器缓存。

我看到如果我选择Internet选项浏览历史(设置)→每次访问网页时,问题就消除了;但如果设置为自动,则会显示页面的缓存版本。

即使最终用户将 IE8 中的缓存选项设置为自动,我是否可以强制“无缓存”?

【问题讨论】:

标签: internet-explorer browser-cache


【解决方案1】:

您可以使用以下标头强制 Internet Explorer 不缓存您的页面:

Expires: -1
Cache-Control: private, max-age=0

↪ 见How to control web page caching, across all browsers?

【讨论】:

    【解决方案2】:

    禁用缓存的最佳方法是在 URL 中使用具有随机唯一值的变量。

    例如,如果您的网页网址是:

    www.abc.com/hello.php

    让它像:

    www.abc.com/hello.php?randomVar=1SH232X-182N19-1929SK

    您可以使用当前时间戳作为randomVar 的值。这样页面就不会被缓存了。

    【讨论】:

      【解决方案3】:

      当您通过 POST 方法而不是 GET 请求页面时,您可以确定它永远不会被缓存。 User1419007的回答也是正确的。

      【讨论】:

      • 这不适用于 IE 8 在所有情况下,IIRC
      • 使用 POST 并发送提到的标头可能已经达到了最好的水平,但人们永远无法 100% 确定,尤其是 Internet Explorer 的行为并不总是与记录的完全一致。
      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 2020-05-27
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多