重新加载页面时如何重置浏览器缓存

时间:2013-03-22 21:41:11

标签: html browser-cache page-refresh

我有一个我正在更改的页面,但只有在重置浏览器缓存时才会看到更改。有什么东西可以添加到我的html中吗?

5 个答案:

答案 0 :(得分:1)

如果要查看css或js更改,一种方法是将_versionNo附加到每个版本的css / js文件中。 E.g。

script_1.0.css script_1.1.css script_1.2.css等。

您可以查看此link,看看它是如何运作的。

来源:Force browser to clear cache

答案 1 :(得分:1)

您应该可以使用简单的HTML使用" meta"标签。 元标记属于"标题"标记并用于许多不同的事情,包括防止缓存和事实上的内容到期。

<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="-1" />

这是两个很好的标签。好的浏览器应该识别它们。

答案 2 :(得分:0)

我有时使用的技巧是向链接文件添加参数。因此,如果它是您要更新的样式表,请使用类似screen.css?version = 123的内容。然后,您可以将其更新为124,浏览器将忘记它的缓存版本并再次获取它。小心不要在现场网站上频繁更新 - 如果用户每次访问时都要下载核心资源,就会毁掉用户的生命。

这样做意味着您只需要处理文件的一个命名版本。这使它变得简单。

答案 3 :(得分:0)

取决于您需要重新加载的资源。您可以使用许多不同的方法,一种常见的方法是使用版本控制或为请求加时间戳。因此,当您获得需要绕过缓存的文件时,您可以使用时间戳来请求它们,例如(使用C#+ Razer的Exaple)。

<script src="/Js/Functions.js?t=@DateTime.UtcNow.Ticks" type="text/javascript"></script>

答案 4 :(得分:0)

无法从页面或其资源中实际清除浏览器的缓存。但是,有很多方法可以解决这个问题。

一种方法是在资源文件中附加“版本号”。这会诱使浏览器认为资源是一个不同的文件,并会再次下载。 This question有一些答案可以帮助你做到这一点。如果使用服务器端代码(如PHP / JSP / ASP.NET)生成要放入查询字符串的唯一版本号,则查询字符串方法可能是最容易控制和维护的。请注意,您必须将其构建为不会在生产中发生,否则您的用户将被强制重新加载每个页面请求的资源,这将增加它们的加载时间。

另一种选择,因为您正在开发,是使用浏览器上的一些开发人员工具来禁用缓存:

  • Chrome开发者工具对此有本机支持。有关如何在Chrome中停用缓存的问题,请参阅this question已接受的答案。请注意,您必须在Chrome中打开您的开发人员工具才能使缓存无法正常工作。
  • Firefox有多种方法可以执行此操作,如在SuperUser的this question中枚举的那样。
  • Internet Explorer的开发人员工具也支持这一点,如SuperUser上的this question所示。您可能必须保持开放式工具处于打开状态才能保持有效。

如果您使用其他(或各种)浏览器进行开发/测试,您应该能够在Google上停用相应浏览器上的缓存。

Firefox和Chrome也支持 Ctrl + Shift + R ,或 Shift + F5 < / kbd>用于无缓存页面重新加载。