我在一个函数中使用 window.open 来打开一个网页,该网页显示了 当前页面。
页面URL存储在DB中,某些页面需要验证。
对于这些页面,我们第一次调用它们时,用户必须进行身份验证,但如果他关闭页面并再次打开它,则会显示缓存页面。
我尝试将时间添加到网址,以便不显示缓存页面
var oDate = new Date();
window.open(url+oDate.getTime());
但浏览器仍在显示缓存的网址。
有什么想法解决这个问题吗?
感谢。
答案 0 :(得分:1)
您可能想尝试向网页明确添加元标记:
<!-- HTTP 1.1 -->
<meta http-equiv="Cache-Control" content="no-store"/>
<!-- HTTP 1.0 -->
<meta http-equiv="Pragma" content="no-cache"/>
<!-- Prevents caching at the Proxy Server -->
<meta http-equiv="Expires" content="0"/>
答案 1 :(得分:-1)
根据需要将clearcache或clearsessioncache设置为yes:
window.open(网址,&#39; _blank&#39;,&#39; location = yes&#39;,&#39; clearcache = yes&#39;);
答案 2 :(得分:-2)
试试这个,如果你想打开一个新的页面,没有缓存问题......它似乎对我有用:
function openGoogleLinkWithDummy()
{
var randNumber = Math.floor(Math.random()*99);
var str="How are you doing today? " + randNumber;
window.open("http://www.google.com?q=cat&" + randNumber);
}
如果你想加载一个外部javascript文件肯定会有效(例如,从服务器端代码中,你将一个随机数附加到zzz.js文件的名称,它看起来像是zzz.js?v = 123)但是这个技巧也适合你的问题。
浏览器会看到一个不同的&#34;版本&#34;每次单击链接时都会因为末尾附加了虚拟数字。
再见!