解析、理解 cookie

cookie 前后端都可以设置的

了解cookie是一个浏览器的存储空间。它的存储格式是字符串的形式(string=" “),
cookie的每一条数据都是以key=value的形式设置的。
cookie值一次只能设置一个。即语法:document.cookie=” key=value"这个是不带过期时间的
多个cookie的设置就是key1=value1 ;key2=value2…

cookie 的特点

1 按域名存储:哪个域名存储的就只能在这个域名下边用,其他域名不可以。只要域名一样,就可以使用和资源路径没有关系。
2 存储大小受到限制:4kb 大概50条左右的信息量
3 时效性:默认是会话级别的,当关闭浏览器的时候就没有了,注意是浏览器而不是网页。可以手动设置,这就涉及到了一个过期时间,经常见的就是7天免登录的信息。
***eg:在某个网站登录了自己的账号,当你7天内再次打开的时候,***发现信息还在就是用了cookie设置了这个信息。下边会有一个详解。又因为涉及到安全的隐私问题,所以它的信息值是在变化的,保障你的安全性。
4 请求的时候会自动携带:也就是说只要cookie空间里有数据,那请求的时候,有多少带多少。
5 前后端都可以操作的(增 删 改 查)

解析

:也就是设置,因为cookie一次只能设置一次。
document.cookie=‘key=value’// 会话级别,关闭浏览器就会删除。
本质上cookie是不可以删除的,而我们要删除他,就要给cookie设置一个过期时间。
我们所在的地区为东八区。所以时间上,相对于世界时间的标准时向前推送了8个小时,所以就要是现在的时间回退到8小时以前。
加入现在是早上8点,那么你回退8小时,就是凌晨0点的时候
语法:
document.cookie=" key=value;expires="+时间对象
这里的key就是属性名
value就是属性值
expires就是时间期限,也就是过期时间
解析:
先得到现在的时间time:
let time=new Date()//当前时间对象
(getTime()时间对象的时间戳。setTime()根据时间戳设置时间)
time.setTime(time.getTime()-10006060*8-1000)
这个意思就是 当前时间 根据时间戳设置时间,里面的时间是一个时间对象得到现在时间的时间回退到8小时以前的前一秒,也就是在你设置的那一秒已经过期了。
以为cookie的值一次只能设置一个,也就是说,当你在设置相同的属性名的时候就应经给替换改变 了,即 document.cookie=‘a=100’;document.cookie=‘a=200’.此时打印的一下aj就是200, console.log(a)
获取cookie,直接打印cookie就可以了,有多少就会打印出来多少。
console.log(document.cookie).会拿到所有的cookie值。如果想要单独拿到某个cookie值就要进行转化了。因为cookie的存储格式是字符换,哪里就要转化成数组。
**

封装cookie的操作,可以用一下

setCookie方法是设置
getCookie方法是获取

先说设置cookie
这里他接受三个参数,应该可以看得懂的吧,key就是你将要设置的属性名,value就是属性值,expires就是过期时间,这个过期时间看你的需要,可以最后不传,但可以设置上,以防后期调用的时候忘记

function setCookie(key,value,expires){
这里的操作跟上边的设置过期时间一样,只不过是把它放到了if判断里面
if(expires){
var time =new Date()
time.setTime(time.getTome()-100060608+1000expires)
document.cookie=key+“=”+value+“;expires=”+time
这里采用的是拼接字符串的方式。
}else{
document.cookie=key+"="+value
}
}
自己传参验证
setcookie(“key”,“value”,expires)=>(a,100,10)就是当前时间的10秒以后过期,不设置expires就是默认8小时前的时间对象。

获取cookie
这里传一个参数key就可以了,上边已经设置过参数,我们获取cookie就是通过属性名来获取的
function getCookie(key){
因为cookie是字符串的形式存储的所以我们要
var str=’ ’
然后把它分割成数组的形式,在数组中用split方法分割
var tmp =document.cookie.split(";")
for循环后者foreach 的方法去遍历他
tmp.forEach(function(item){//这里的item就是每一条cookie
打印一下,看看结果console.log(item)
var t=item.split("=")
判断他的索引是不是等于key
if(t[0]===key){
str=t[1]
}
})
返回这个 str
return str
}
var res=getCookie(key)//传递一个你要获取的key名。
console.log(res)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值