当客户端通过点击后退按钮进入页面时,如何使其加载新副本而不是缓存副本?
Posted
技术标签:
【中文标题】当客户端通过点击后退按钮进入页面时,如何使其加载新副本而不是缓存副本?【英文标题】:When the client gets to a page by hitting the back button, how to make it load a fresh copy instead of cached one? 【发布时间】:2014-08-26 16:57:20 【问题描述】:当客户端通过点击后退按钮到达该页面时,我正在尝试获取一个页面以从服务器加载新副本。默认情况下,它会从浏览器内存中加载旧的缓存副本。
有没有办法做到这一点? (在 node.js 中)
向window.unload
as mentioned here 添加一个空函数对我不起作用。
【问题讨论】:
【参考方案1】:所有的Meta标签都试过了,都没有效果。但 question 提到 by @BenJ 提到“当您无权访问 Web 服务器的标头时”.. 实际上,我确实可以访问并且可以从服务器端设置任何标头。 于是我挖了out this answer which worked flawlessly
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
res.header('Expires', '-1');
res.header('Pragma', 'no-cache');
【讨论】:
我用 res.redirect 试过这个 --> 它似乎不适用于 Chrome 版本 61。 router.get('/logout', function (req, res) res.cookie(' jwtToken', '', expires: new Date(0)); res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); res.header('Expires ', '-1'); res.header('Pragma', 'no-cache'); res.redirect('/vendor/login'); );【参考方案2】:您是否尝试在页面的<head>
部分使用这些:
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
更新
请参考这个问题:Using <meta> tags to turn off caching in all browsers?
【讨论】:
以上是关于当客户端通过点击后退按钮进入页面时,如何使其加载新副本而不是缓存副本?的主要内容,如果未能解决你的问题,请参考以下文章
点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面