localStorage、sessionStorage和cookie的区别与用法请见下面的博客:
https://segmentfault.com/a/1190000012057010
cookie的操作函数:(来自w3school网站)//cookie :存储//设置cookie
function setCookie(key, value, expiredays){//cookie的键、值以及存储的天数 var date = new Date(); date.setDate(date.getDate() + expiredays);//获取现在的时间并添加用户设置的存储天数 document.cookie = key + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + date.toGMTString());//加密存储cookie } //获取cookie值 function getCookie(key){ if (document.cookie.length > 0){ start = document.cookie.indexOf(key + "=");//查找cookie是否存有键值为key的cookie if (start != -1){ start = start + key.length + 1;//或去value值得第一个字符的下标 end=document.cookie.indexOf(";",start); if (end == -1){ end = document.cookie.length; } return unescape(document.cookie.substring(start, end));//返回解码后的value值 } } return ""; } //删除cookie function removeCookie(key) { setCookie(key, '', -1); }
//删除所有cookie function clearAllCookie() { var keys = document.cookie.match(/[^ =;]+(?==)/g); if(keys) { for(var i = keys.length; i>0; i--) { document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString(); } } }
//[^ =;]+:负值字符范围表示匹配一个及以上字符但非“ ”或“=”或“;”开始的字符串
//(?==):正向肯定查询;当满足前面的匹配后;匹配后面跟着一个“=”的字符串(但不配后面的“=”以及后面的字符)
//详情请见:http://www.runoob.com/regexp/regexp-metachar.html
sessionStorage和localStorage的操作:
// 保存数据到sessionStorage sessionStorage.setItem('key', 'value'); // 从sessionStorage获取数据 var data = sessionStorage.getItem('key'); // 从sessionStorage删除保存的数据 sessionStorage.removeItem('key'); // 从sessionStorage删除所有保存的数据 sessionStorage.clear();
localStorage.setItem("key","value");//以“key”为名称存储一个值“value”
localStorage.getItem("key");//获取名称为“key”的值
localStorage.removeItem("key");//删除名称为“key”的信息。
localStorage.clear();//清空localStorage中所有信息
注意:
localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。
不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。