【问题标题】:What broswers don't support Cache Busting?哪些浏览器不支持缓存清除?
【发布时间】:2016-05-11 13:30:16
【问题描述】:

我一直在研究最近发布大量代码的电子商务网站。几个月来,我们一直在修改/优化一些 .js 和 .css。每次用户访问该站点时,他们都必须清除其缓存。

我们已经开始向网址添加查询字符串 /Resources/Javascript/GuidedNavigation.js?v=1

但是,据我所知,并非所有浏览器都支持这一点。我无法找到关于哪些浏览器支持查询字符串的解释。大概是所有现代浏览器,但我们仍然有相当数量的流量通过 IE7-IE9 进入。

哪些浏览器支持缓存清除和查询字符串?

【问题讨论】:

  • 我实际上正在开发 IE5,我可以告诉你它不支持这个。它实际上不支持很多东西所以它不是一个例子......
  • 如果像caniuse.com 这样的东西能启发我们了解这种能力会很好:(
  • Use HTTP Cache-Control 相反,它是一个古老的东西(1999 年),它可能适用于旧的 IE。
  • 您可以在文件名本身中包含变量,这将确保新下载,即这样做style_4rT5mL7.css vs. style.css?v=4rT5mL7
  • 浏览器不支持查询字符串?!自大约公元前 840 年以来,它们一直在 HTTP 1.0 中。我认为没有任何浏览器不支持查询字符串。或许某些浏览器对带有查询字符串的 URL 表现出不正确的缓存行为?这是一个不同的故事,但我也会对此感到非常惊讶。同样,公元前 840 年......

标签: javascript css caching browser-support


【解决方案1】:

为了澄清这个问题,哪些浏览器支持通过查询字符串破坏缓存?

缓存破坏不是浏览器“支持”的;这是一种使用浏览器缓存标准行为的技术。

数据缓存在浏览器中每个 URL。每个唯一的 URL 应该代表一个唯一的数据,可以单独缓存。 通过在查询字符串中附加一个无意义的值,您可以更改 URL,使其唯一,导致浏览器下载它,因为它还没有缓存它。 这就是它的全部内容。

为了使这个 not 工作,浏览器必须具有非标准的缓存行为,并以某种方式认为两个不同的 URL 相等,并为它实际上拥有的 URL 使用不同 URL 的缓存版本尚未下载。我知道没有浏览器可以做到这一点(并不意味着它不存在,但这会严重损坏)。

【讨论】:

  • 感谢您的帮助@deceze
猜你喜欢
  • 2017-06-15
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
  • 1970-01-01
相关资源
最近更新 更多