作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
意外发生,某个HTML页面被浏览器设置为缓存。我们不想更改该页面的 URL,因为其他方依赖该 URL(包括 SEO)。
有没有办法让尽可能多的客户端重新加载该页面?客户在网站上四处浏览时经常会来到该页面,因此我们通常能够在他们访问有问题的页面之前向他们发送一些新的 JavaScript(或任何其他资源)。也许有一个强制重新加载的 JavaScript 技巧?!
最佳答案
下面的代码片段将使 URI 等于 uriOfCachedPage
的页面的缓存条目无效:
var xhr = new XMLHttpRequest();
xhr.open("GET", uriOfCachedPage, true);
xhr.setRequestHeader("Cache-Control", "max-age=0");
xhr.send();
您需要将此代码注入(inject)您的用户可能会获得的脚本或 HTML 页面。
更多信息请查看XMLHttpRequest MDN 和 Request Cache-Control Directives 上的页面RFC 7232 超文本传输协议(protocol) (HTTP/1.1) 中的部分:缓存。
您还可以将 cachedPageReloaded
标志存储在 cookie 或 localStorage 中,并仅在缓存条目之前未失效时才使其失效。检查Document.cookie和 Window.localStorage MDN 上的页面。
关于javascript - 如何在不更改 URL 的情况下强制浏览器重新加载缓存的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831220/
我是一名优秀的程序员,十分优秀!