【问题标题】:How do I create a "clear cache" button for my site?如何为我的网站创建“清除缓存”按钮?
【发布时间】:2011-06-27 03:00:15
【问题描述】:

我想在我的网站上创建一个按钮来完全清除我的缓存。由于 Safari 和 Chrome 的功能似乎都不起作用。这可能吗?

【问题讨论】:

  • 你不能,你不应该,而且你可能不需要。其他事情正在发生。

标签: php javascript cache-control browser-cache


【解决方案1】:

不可能。这会将低级功能暴露给公众访问。即使漏洞利用会简单地清空您的缓存,它仍然是不可取的。 Firefox 和 Chrome 都为此使用 shift-ctrl-del,因此以实际必须使用键盘为代价,您可以在没有安全风险的情况下做同样的事情。

【讨论】:

  • 问题是它不起作用。即使在我点击“清除缓存”之后,我也会刷新并且我仍然得到响应标头而不是请求标头。 ://
  • @Jackson:等等……你应该期望得到响应头。请求标头到达服务器并返回响应。如果浏览器返回缓存信息,那么您将不会在服务器上看到请求。
  • 也许您的问题与 isp\corporate\firewall\router 缓存有关。浏览器不是唯一缓存网络流量的东西。
【解决方案2】:

听起来您想清除服务器和浏览器之间的缓存数据,而不是浏览器缓存的数据。您的资源副本可能位于客户端计算机和服务器之间的计算机上,这将返回缓存的副本,而不是再次向服务器请求数据。

您应该阅读不同的缓存方法,这样您就可以将某些类型的文件设置为缓存一段时间等。首先尝试this


我通常会设置静态资源(css、js等)进行长期缓存,但是当我对它进行更改时,我会更改URL。我通常通过重写请求 url 来做到这一点,所以 /resources/dummy/file.css 变为 /resources/file.css 并且我可以随时更改 dummy。这会暗示另一个文件(尚未缓存),但我不必重命名该文件。

RewriteRule  resources/[^/]+/([^/]+)$  resources/$1

【讨论】:

    【解决方案3】:

    非常怀疑这是可能的,而且您希望它是跨浏览器的。它会造成严重的安全漏洞被利用。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 2010-10-07
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多