Safari - 使用缓存页面刷新页面 - JavaScript

时间:2016-06-19 18:26:05

标签: javascript caching safari

有没有人通过JavaScript知道我可以清除Safari的bfcache,还是强制它重新加载而不是使用页面的缓存版本?

我有一个正在运行测试的Web应用程序,并且有一个监视倒计时(超时)的JavaScript:

timeoutId = window.setInterval(function () {
    timeoutRemaining--;
    if (timeoutRemaining <= 0) {
        location.href = myTimeoutLocation;
    }
}, timeoutInterval);

这一切都正常,直到我进入myTimeoutLocation。行为是,如果用户单击后退按钮,测试应该继续。但是,在导航回来时,我发现IE和Chrome重新加载页面,但Firefox和Safari正在显示缓存页面。我需要确保永远不会显示缓存页面。我可以通过添加:

来解决Firefox中的这个问题
window.onunload = function () { };

到我的脚本,但自Safari 5.x以来在Safari中没有用(据我所知)。我找到了另一个解决方案:

window.addEventListener("pageshow", function(evt){
    if(evt.persisted){
        setTimeout(function(){
            window.location.reload();
        },10);
    }
}, false);

这在一定程度上起作用......我现在遇到的问题是,即使使用上面的代码,我也会收到一个对话框:...我显然不允许嵌入。对话框显示,为了显示页面,必须使用相应的确认或拒绝按钮将信息发送到服务器。我确实尝试将forceGet设置为true,但这并没有解决出现对话框的问题。我应该提一下,点击重新发送会产生预期的效果。

Non-embedded image of dialog

是的,我意识到图像是Firefox,而不是Safari。

如果它有任何不同(即使这是一个JavaScript问题),该网站使用.NET / MVC4编码并托管在IIS中。

提前感谢您提供正确方向的任何帮助/想法/信息/指示。

0 个答案:

没有答案