2013-03-22 67 views

回答

1

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

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

你可以看看这个link来看看它是如何可以工作。

来源:Force browser to clear cache

0

一招我有时用的是一个参数添加到链接文件。所以,如果它是你想要更新的样式表,使用类似screen.css?version = 123的东西。然后,您可以将其更新为124,并且浏览器将会忘记它的缓存版本并再次获取它。小心不要在活网站上更新频繁 - 如果他们每次访问时都必须下载核心资源,就会毁掉用户的生活。

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

0

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

<script src="/Js/[email protected]" type="text/javascript"></script> 
1

你应该能够与“元”标签纯HTML做到这一点。 元标签属于“标题”标签,用于许多不同的事情,包括防止缓存和事实上到期的内容。

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

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

0

无法从页面或其结果中清除浏览器的缓存。但是,有一些解决方法。

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

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

  • Chrome开发者工具有这个原生支持。请参阅this question关于如何在Chrome中停用缓存的接受答案。请注意,您必须在Chrome中打开您的开发人员工具才能使缓存禁用。
  • Firefox有几种方式来执行此操作,如SuperUser上的this question中所列举的。
  • Internet Explorer的开发者工具也支持这个功能,这在SuperUser的this question中很明显。您可能必须保持开放式工具的开放才能保持有效。

如果您使用不同的(或多种)浏览器进行开发/测试,您应该能够Google如何禁用相应浏览器上的缓存。

Firefox和铬也支持Ctrl键 + + - [R,或 + F5缓存少页面重新加载。

+0

而不是版本号,你可以使用文件的最后修改时间。作为查询字符串参数追加! – Doin 2014-03-15 19:03:53

+0

@Doin最后一次修改日期是一种版本编号,它只是基于日期而不是任意数字附加到潜在的任意更改步骤。我特意将它放在'''中,以表明它可以是任何类型的数字/值,在需要时可以更改。 – ajp15243 2014-03-15 21:19:22

+0

好吧,只是“版本号”可能不会提示“最后修改日期”那些可能会读到这个的人,以及“最后修改日期”是一个特别简单的解决方案,因为你不必跟踪任何事情,所以我想我应该提及它。 – Doin 2014-03-16 21:58:32

相关问题