强制刷新的 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>

特别注意 ma​​ster.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 链接?的主要内容,如果未能解决你的问题,请参考以下文章

vue 强制刷新组件

js控制页面跳转,清缓存,强制刷新页面

有没有办法强制刷新主机?

如何强制刷新网页

在 HTML 中的页面刷新时强制页面滚动位置到顶部

[Web前端] mac chrome 浏览器强制刷新,清除浏览器缓存