2010-09-02 156 views
2

我正在使用window.open在打开网页的功能,它显示当前页面的帮助。window.open缓存问题

页面URL存储在数据库中,有些页面需要认证。

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

我尝试的时候添加到URL,以不显示缓存的页面

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

但浏览器仍然显示缓存的URL。

任何想法来解决这个问题?

谢谢。

+3

它确实应该是'window.open(url +'?x ='+ new Date()。getTime())',除非有其他参数;重点在于它会打破网址以便像这样将日期保持在最后。 – Pointy 2010-09-02 12:49:14

+0

这就是我在做什么, 这是一个失踪 – Mouadh 2010-09-02 14:53:16

回答

1

你可能想尝试加入明确的meta标签到您的网页:

<!-- 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"/> 
-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),但这个技巧也可以解决你的问题。

浏览器每次单击链接时都会看到一个不同的“版本”,因为后面添加了虚拟编号。

再见!

-1

集clearcache或clearsessioncache等于是根据需要:

window.open(URL, '_blank', '位置=是', 'clearcache =是');

+0

没有在我身边 – 2015-05-14 11:03:14

+1

'clearcache'和'clearsessioncache'是Android/iOS WebView特定的。 – 2015-11-05 09:41:57