Q14-localstorage 和 sessionStorage

参考:http://blog.haoji.me/aboute-session-storage.html

① localStorage(本地存储)和sessionStorage(会话存储)都是html5中新增加的属性,它们将浏览器的本地存储大小扩大到了5M;

② 生命周期不同,localStorage如果不进行清除的话数据会一直存在,长久有效;sessionStorage在浏览器关闭时数据会被清除;

③ 注意传入的必须是字符串格式,如果需要传入复杂的需要使用JSON.parse()和JSON.stringify()来配合;

理解:

后台的session:

Java的session,它是基于往cookie写入一个sessonid来实现的,所以只要你不是打开一个隐身窗口,无论你开多少个标签页,不同标签页之间都会被认为是一个session,你在这个标签页登录了,新开一个标签输入地址,仍然是登录状态;

sessionStorage的session:

HTML5中的这个sessionStorage和传统后台的session并不完全是同一个东西,主要表现在多标签页数据是否会共享的问题上的不同;

误区:之前认为,同一个窗口,只要会话没过期,不同标签页之间,相同域名下的sessionStorage是一样的;

正确:刷新当前页面,或者通过location.href、window.open或者通过带有target="_blank"的a标签打开新标签,之前的sessionStorage还在,但是如果是主动打开一个新窗口或者新标签,那么F12会发现,sessionStorage空空如也,什么都没有;

总结:也就是说sessionStorage的session仅限于当前标签页或者当前标签页打开的新标签页,通过其他方式新开的窗口或者标签,不认为是同一个session;

使用:

window.localStorage.setItem( key,  json)

window.localStorage.getItem( key)

window.localStorage.removeItem(key)

window.localStorage.clear()

你可能感兴趣的:(Q14-localstorage 和 sessionStorage)