编程语言
首页 > 编程语言> > javascript – win8.1中的localStorage IE11不同步

javascript – win8.1中的localStorage IE11不同步

作者:互联网

我们有两页“/ read”和“/ write”.页面“/ write”每秒用当前时间更新localStorage:

setInterval(function(){
    var time = (new Date()).getTime();
    localStorage.setItem("time", time);
    console.log("set", time);
},1000);

页面“/ read”读取相同的存储空间:

setInterval(function(){
    var time = localStorage.getItem("time");
    console.log("get", time);
},1000);

有人会认为“/ read”页面应该显示由另一个页面写入localStorage的相同值.但是在Win8.1的IE11中,这已经破了.页面“/ read”从存储中读取一些旧值,并在其上显示相同的值(就像它使用缓存进行本地存储一样).有任何想法吗?

附:两个页面都在同一个域上(实例 – read write)

解决方法:

我在Win 10上找到了解决此问题的方法.如果您在代码中处理window.onstorage事件,则localStorage将刷新所有打开的选项卡.
这件事对我来说很简单:

window.onstorage = function(e){
    //Leave this empty
    //or add code to handle
    //the event
};

我没有彻底测试过这段代码,所以请在任何生产应用程序中使用此方法之前执行此操作.

希望这可以帮助!

标签:javascript,html5,local-storage,internet-explorer,internet-explorer-11
来源: https://codeday.me/bug/20191004/1854541.html