强制刷新的 HTML 链接?
Posted
技术标签:
【中文标题】强制刷新的 HTML 链接?【英文标题】:HTML link that forces refresh? 【发布时间】:2010-11-19 09:38:53 【问题描述】:有没有办法构造一个指向 URL 的链接,强制浏览器忽略它可能对该 URL 拥有的任何缓存?
我们有一些网站在经过多年的静态内容之后最近发生了变化。用户单击这些站点的快捷方式、收藏夹或键入 URL 并获取旧的缓存内容。我想要一个带有指向相同 URL 但强制浏览器获取新内容的链接的页面。
这可能吗?跨浏览器?
【问题讨论】:
【参考方案1】:-
使用无意义的查询参数更改页面的所有链接:products.html?happy=days
将页面上的所有资源更改为使用另一个无意义的查询参数:style.css?the=fonz
您可以使用日期或时间戳或版本号以系统的方式进行操作,或者随意使用情景喜剧、布偶、山脉和小型哺乳动物。
【讨论】:
您知道一种形成强制刷新快捷方式的 URL 的方法吗?例如,我看到 www.abc.com/?happy=days 会是新鲜的内容,但如果我有 www.abc.com 的快捷方式,它也会被刷新吗? Tom,你是说需要同时做这两件事还是只做其中一件? 我意识到这是旧的,但参数建议 +1。【参考方案2】:在具有唯一值的 href 末尾添加一个 url 参数,例如 new Date().getTime():
...somePage.html?time=123456789
【讨论】:
【参考方案3】:当我需要完全刷新页面时,我只需添加?v=
后跟一个随机字符串。当浏览器在页面之后检测到查询字符串时,它们会自动绕过缓存(如果缓存版本中不存在相同的查询字符串),因为页面的内容可能会根据查询字符串的值而改变。
由于网页可以每秒重新加载一次,因此我使用当前的 UNIX 时间戳,后跟一个字母和 1 到 1000 之间的随机数。
两个页面获得完全相同的查询字符串的可能性接近于 null。
【讨论】:
【参考方案4】:很多人使用版本查询字符串参数。
查看 SO 源代码
<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=4143"></script>
特别注意 master.js?v=4143
就我个人而言,我在应用程序范围内的配置文件中设置了此设置,但我相信如果您需要更精细的自动版本控制,您可以在源代码管理中正确执行此操作。
【讨论】:
【参考方案5】:使用 javascript 强制刷新的 HTML 链接:
<a href="javascript:location.reload();"
class="btn btn-sm btn-info"><span class="fa fa-refresh"></span></a>
【讨论】:
以上是关于强制刷新的 HTML 链接?的主要内容,如果未能解决你的问题,请参考以下文章