cookie、sessionStorage、localStorage的区别

cookie数据始终在同源的http请求中携带(即便不须要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下。存储大小限制也不一样,cookie数据不能超过4k,同时由于每次http请求都会携带cookie,因此cookie只适合保存很小的数据,如会话标识。json

sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,能够达到5M或更大。数据有效期不一样,
sessionStorage:仅在当前浏览器窗口关闭前有效,天然也就不可能持久保持;
localStorage:始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据;
cookie只在设置的cookie过时时间以前一直有效,即便窗口或浏览器关闭。做用域不一样,sessionStorage不在不一样的浏览器窗口中共享,即便是同一个页面;
localStorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的。Web Storage 支持事件通知机制,能够将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。api

总结:浏览器

  • localStorage没有过时时间,只要不clear或remove,数据会一直保存。
  • sessionStorage 针对一个session进行数据存储,生命周期与session相同,当用户关闭浏览器后,数据将被删除。
 
控制台查看cookie:   alert(document.cookie)

localStorage 是以key-value形式保存数据的,key和value只能是字符串格式。所以数字1保存后,会转换成字符串1。
若是要在localStorage或者sessionStorage中保存数字,那就得用json的数据形式来保存
例以下面示例代码的其中一句服务器

var obj = {};
            obj[getData.value] = getData.value;
            obj['Number'] = 1;
            window.sessionStorage[getData.value] = JSON.stringify(obj);
本质就是使用使用JSON.stringify和 JSON.parse封装数据
相关文章
相关标签/搜索