美文网首页WEB开发
浏览器存储cookie,sessionStorage,local

浏览器存储cookie,sessionStorage,local

作者: 情有千千节 | 来源:发表于2019-03-07 20:46 被阅读0次

特点

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的
共同点:都是保存在浏览器端、且同源的

存储大小

cookie数据大小不能超过4k。
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

有期时间:

localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage 数据在当前浏览器窗口关闭后自动删除。
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

读写

/*
 *sessionStorage:
 */

sessionStorage.setItem("key","value");
//或者写成
sessionStorage.key="value";

变量=sessionStorage.getItem("key");
//或者写成
变量=sessionStorage.key;

/*
 *localStorage:
 */

localStorage.setItem("key","value");
//或者写成
localStorage.key="value";

变量=localStorage.getItem("key");
//或者写成
变量=localStorage.key;

/*
 *cookie:
 */
一、设置cookie
1.无过期时间
function setCookie(name,value) {
    document.cookie = name + '=' + escape(value);
}

2.固定过期时间
function setCookie(name,value)
{
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

3.设置自定义过期时间cookie
function setCookie(name,value,time)
{
    var msec = getMsec(time); //获取毫秒
    var exp = new Date();
    exp.setTime(exp.getTime() + msec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

//将字符串时间转换为毫秒,1秒=1000毫秒
function getMsec(DateStr)
{
   var timeNum=str.substring(0,str.length-1)*1; //时间数量
   var timeStr=str.substring(str.length-1,str.length); //时间单位前缀,如h表示小时
   
   if (timeStr=="s") //20s表示20秒
   {
        return timeNum*1000;
   }
   else if (timeStr=="h") //12h表示12小时
   {
       return timeNum*60*60*1000;
   }
   else if (timeStr=="d")
   {
       return timeNum*24*60*60*1000; //30d表示30天
   }
}

二、读取Cookie:
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); //正则匹配
    if(arr=document.cookie.match(reg)){
      return unescape(arr[2]);
    }
    else{
     return null;
    }
} 

三、删除Cookie:
function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null){
      document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }
} 

相关文章

网友评论

    本文标题:浏览器存储cookie,sessionStorage,local

    本文链接:https://www.haomeiwen.com/subject/ktzhpqtx.html