数据存储:localStorage、sessionStorage、cookie三者的区别
localStorage、sessionStorage、cookie三者的区别
(1)存储大小
cookie数据大小不能超过4k ;
cookie存储是可以设置过期时间;
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大;
cookie存在时间比较长了;
(2)有效时间
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除;
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭;
(3)数据与服务器之间的交互方式
cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端;
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存;
(4)作用域
localStorage的作用域限制在文档源的;
localStorage同源的文档之间可以相互访问和修改相同名称的数据;
localStorage受浏览器厂商的限制,chrome下存储的数据,360浏览器下不可访问; 会得到‘Invalid Date’;
sessionStorage在localStorage的同源策略基础之上,还有更严格的限制:
他还被限制在窗口中,意思是同一个窗口或标签页的不同页面之间可以共享sessionStorage;
但是不同的窗口或标签页之间不能共享sessionStorage,即便他们是同一个页面地址;
这里的窗口是顶级窗口,如果里面有多个iframe,他们之间共享sessionStorage;