我在我的网站有一些值,我想清除浏览器是closures时,我selectsessionStorage存储该值,它清除时,选项卡closures,并保持存储,如果用户按f5,但如果用户打开某些链接在不同的选项卡此值不可用。 我怎样才能与我的应用程序共享所有浏览器选项卡之间的sessionStorage值? 用例:将值存储在某个存储中,在所有浏览器选项卡中保留该值,并在所有选项卡closures时将其清除。 if (!sessionStorage.getItem(key)) { sessionStorage.setItem(key, defaultValue) } 任何人都可以检查我的问题吗? 我的问题被标记为重复的,但实际上相关的问题被问了2年前,但我的3年去,也是这个问题更受欢迎,所以我认为它的错误标记。 任何人都可以解决这个问题,或只是回答为什么发生这种情况? 谢谢。
SessionStorage和LocalStorage允许在Web浏览器中保存键/值对。 该值必须是一个string,并保存js对象不是微不足道的。 var user = {'name':'John'}; sessionStorage.setItem('user', user); var obj = sessionStorage.user; // obj='[object Object]' Not an object 现在,可以通过将对象序列化为JSON来避免这种限制,然后反序列化它们以恢复对象。 但是,存储API总是通过setItem和getItem方法。 sessionStorage.setItem('user', JSON.stringify(user)); var obj = JSON.parse(sessionStorage.getItem('user')); // An object 😀 我可以避免这个限制吗? 我只是想执行这样的事情: sessionStorage.user.name; // 'John' sessionStorage.user.name = 'Mary'; sessionStorage.user.name // 'Mary' 我已经尝试了defineGetter和defineSetter方法来拦截调用,但它是一个乏味的工作,因为我必须定义所有的属性,我的目标是不知道未来的属性。
除了非持久性和仅限于当前窗口的范围之外,是否有任何好处(性能,数据访问等)到本地存储上的会话存储?
localStorage,sessionStorage,session和cookies的技术优点和缺点是什么?我什么时候可以使用它们?