十七、cookie
cookie是浏览器用来存储前端数据的一种存储机制
-
本质上是在浏览器内创建一个文档文件,在这个文件中写入数据、存储数据、读取数据
-
存储在 cookie 文件中的数据,一般是作为整个项目的公共数据使用
-
cookie中存储的数据,都是带有时效性的,如果是超过了时效性,cookie会自动删除这个数据
-
时间时效:
-
只要当前时间超过时效时间,cookie会自动删除这个数据
-
设定和计算时间都是按照标准时间计算,中国 : 当前时间 - 8小时
-
-
session时效:
-
会话时效,请求连接的时效性
-
当请求连接中断时,cookie会自动删除这个数据
-
cookie 是浏览器的功能,所有的计算机语言,都可以操作cookie
JavaScript中设定 cookie
1 // 通过JavaScript设定和读取cookie都是通过document.cookie来进行 2 3 // 获取cookie 4 变量 = document.cookie 5 6 // 设定cookie 7 document.cookie = 数据
-
通过 document.cookie 获取到的是字符串数据
-
键值对,分号,空格,键值对,分号,空格,键值对形式(name=张三; age=18; sex=男; addr=北京)
-
通过分号将字符串先转化为数组
-
将上一步索引对应的字符串数据,再转化为数组
-
将 0 对应的内容作为对象的键名,将 1 对应的内容作为对象的数据
-
1 let cookieStr = 'name=张三; age=18; sex=男; addr=北京'; 2 3 let arr1 = cookieStr.split('; '); // ["name=张三", "age=18", "sex=男", "addr=北京"] 4 let arr2; 5 let obj = {}; 6 7 arr1.forEach(v => { 8 // 再把v转化为数组 9 arr2 = v.split('='); 10 // 数组的0、1位分别作为对象的键名键值 11 obj[arr2[0]] = arr2[1]; 12 }) 13 14 console.log(obj);
-
cookie必须是键值对形式的
-
键名=键值,而且必须是字符串格式,document.cookie = 'name=张三';
-
cookie设定键值对,最好是一个一个来,因为要设定时效性
-
-
设定时效性
-
通过 expires 来设定时效性,数值必须是 一个时间对象
-
时间对象的声明必须要通过 new Date() 来完成,操作 时间对象中存储的时间 - 8小时时差 + 时效时间
-
-
1 document.cookie = 'name=张三;expires=时间对象';