JavaScript的cookie和sessionStorage 、localStorage

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的。

原文地址:https://www.cnblogs.com/lianchenxi/p/9184810.html