js中关于cookie

cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

名字 cookie
当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 “Welcome John Doe!” 的欢迎词。而名字则是从 cookie 中取回的。

密码 cookie
当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。

日期 cookie
当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:“Your last visit was on Tuesday August 11, 2005!”。日期也是从 cookie 中取回的。

存储用户的数据
name=value;[expires=date];[path=path];[domain=somewhere.com];[secure]
【注】name和value必须有的(自定义的),后面带中括号的值是可选项。
【注】cookie一般情况下需要在服务器环境下加载。火狐支持本地加载。

设置cookie
document.cookie = ‘username=tianyufei’;

获取cookie
alert(document.cookie);

设置cookie的时候,有可能在cookie中存储中文。
【注】如果在cookie中有中文,一般情况下采取下述的处理方式。
1、编码去存储(中文 => 字符)
2、解码去读取(字符 => 中文)
encodeURIComponent 编码
decodeURIComponent 解码

expires
设置cookie过期日期,可以通过自定义的方式自定义过期日期。
【注】如果我们不去设置这个键,默认是当前会话结束时消失(只要将整个浏览器关闭)
细节:cookie过期的话,系统会自动清除过期的cookie。
删除cookie,我们可以将cookie过期日期,设置成,过去的某一时刻。

path
限制访问路径
如果我们不去设置path,默认是当前加载的.html文件路径
【注】如果设置的cookie路径和,加载文件的路径不一致的话,不能访问到cookie。

domain
限制访问域名
如果不去设置,默认,是当前加载文件的域名或者IP。
【注】设置cookie的域名和,加载文件的域名不一致的话,cookie设置失败。

secure
如果不设置,默认是false
可以允许任何网络传输协议加载 http https
【注】如果加了这个键,就必须用https协议来加载文件。
http https(证书认证的协议)

cookie存储大小的限制:
cookie总共存储大小的上限是 4KB左右
cookie每一域名下面,最多可以存储50条cookie。

删除cookie
1、removeCookie(name)
2、function removeCookie(name){
document.cookie = encodeURIComponent(name) + “=;expires=” + new Date(0);
} //将过期时间设置成之前的时间,那么cookie将为空。

将cookie封装
function setCookie(name, value, expires, path, domain, secure){
var cookieStr = encodeURIComponent(name) + “=” + encodeURIComponent(value);
if(expires){
cookieStr += “;expires=” + numOfDate(expires);
}
if(path){
cookieStr += “;path=” + path;
}
if(domain){
cookieStr += “;domain=” + domain;
}
if(secure){
cookieStr += “;secure”;
}
document.cookie = cookieStr;

        }
        function numOfDate(n){
            //传入一个n
            var d = new Date();
            var date = d.getDate();
            d.setDate(n + date);
            return d;
        }

将cookie中name后的value值单独输出
function getCookie(name){
var cookieStr = decodeURIComponent(document.cookie);
//1、健在字符串中出现的位置
var start = cookieStr.indexOf(name);
if(start == -1){
return null;
}else{
//2、找到结束位置
var end = cookieStr.indexOf(";", start);
if(end == -1){
end = cookieStr.length;
}
}
//3、提取字符串
var subStr = cookieStr.substring(start, end);
//4、字符串分割
var arr = subStr.split("=");
return arr[1];
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值