window.open缓存问题

时间:2010-09-02 12:41:31

标签: javascript asp.net html

我在一个函数中使用 window.open 来打开一个网页,该网页显示了 当前页面。

页面URL存储在DB中,某些页面需要验证。

对于这些页面,我们第一次调用它们时,用户必须进行身份验证,但如果他关闭页面并再次打开它,则会显示缓存页面。

我尝试将时间添加到网址,以便不显示缓存页面

var oDate = new Date();
window.open(url+oDate.getTime());

但浏览器仍在显示缓存的网址。

有什么想法解决这个问题吗?

感谢。

3 个答案:

答案 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;每次单击链接时都会因为末尾附加了虚拟数字。

再见!