前端开发日记之cookie的学习

session是运行在服务器,而cookie运行在客服端。

本次的需求是,用户登录的时候可以选择不同的角色登录,我们需要记录用户上一次选择登录的角色,以便在用户下一次登录时自动地选择用户上一次的登录角色。

cookie的生命周期

设置Cookie对象的有效时间, setMaxAge()方法便可以设置Cookie对象的有效时间,
例如:Cookie c = new Cookie("username","john");
c.setMaxAge(60);//60秒的意思
c.setMaxAge(60*60);//一小时
c.setMaxAge(365*24*60*60);//一年
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。
这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
cookie.setmaxage设置为0时,会马上在浏览器上删除指定的cookie
cookie.setmaxage设置为-1时,代表关闭当前浏览器即失效。

贴上cookie操作的代码

//设置或添加cookie time为小时数
function setCookie(name,value,time){ 
    var str = name + "=" + escape(value);
    if(time > 0){
        var date = new Date();
        var ms = time*3600*1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
    }
    document.cookie = str;
}
//获取cookie  
function getCookie(name){  
    //cookie中的数据都是以分号加空格区分开  
    var arr = document.cookie.split("; ");  
    for(var i=0; i<arr.length; i++){  
        if(arr[i].split("=")[0] == name){  
            return  escape(arr[i].split("=")[1]); //转码,预防中午乱码
        }
    }
    //未找到对应的cookie则返回空字符串  
    return '';  
}
//删除cookie  
function removeCookie(name){   
    document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值