cookie是服务器端提供给浏览器端的特殊信息,以文本的形式存储在客户端,每次请求时,都会携带cookie。 cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。若是在浏览器中设置了cookie的过时时间,cookie会被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过时时间结束才消失。浏览器
sessionStorage和localStorage是在h5中引入的本地存储机制,sessionStorage和localStorage中存储的数据不会被发送给服务器。服务器
localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,不然这些信息将永远存在。cookie
sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么全部经过sessionStorage存储的数据也就被清空了。session
不一样浏览器没法共享localStorage或sessionStorage中的信息。相同浏览器的不一样页面间能够共享相同的 localStorage(页面属于相同域名和端口),可是不一样页面或标签页间没法共享sessionStorage的信息。这里须要注意的是,页面及标 签页仅指顶级窗口,若是一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是能够共享sessionStorage的。函数
sessionStorage和localStorage的用法:spa
一、将数据存储到storage:3d
sessionStorage.setItem("key","value");对象
localStorage.setItem("key","value");blog
或者生命周期
sessionStorage.key = "value";
localStorage.key = "value";
二、从storage中根据key取出value:
sessionStorage.getItem("key");
localStorage.getItem("key");
或者:
sessionStorage.key
localStorage.key
经过getItem或直接使用localStorage["key"]获取到的信息均为实际存储的副本。
localStorage.key = {value1:"value1"};
localStorage.key.value1='a';
这里是没法对实际存储的值产生做用的,下面的写法也不能够:
localStorage.getItem("key").value1="a";
三、从storage中删除
sessionStorage.removeItem("key");
localStorage.removeItem("key");
四、清空storage
sessionStorage.clear();
localStorage.clear();
sessionStorage和localStorage中的值都是以字符串的形式存储,可是咱们常常会遇到须要存储对象的状况,好比咱们如今须要将一个JSON对象的信息经过storage存储下来,这时咱们须要借助两个函数:JSON.stringify()和JSON.parse()。
JSON.stringify(),将JSON对象解析为字符串
JSON.parse(),将JSON格式的字符串解析为对象
搭配上storage,一般是这么用的:
var obj = {"Math":"95","Physics":"98"}; //声明一个对象
sessionStorage.setItem("Score",JSON.stringify(obj)); //将JSON对象的字符串形式存储到storage
var obj2 = JSON.parse(sessionStorage.getItem("Score")); //根据key取出值,并将值从新解析为JSON对象