给cookie设置属性
document.cookie=“a=2”;
cookie的取值
var obj=document.cookie.split(";").reduce((v,t)=>{
t=t.trim();
var arr=t.split("=");
v[arr[0]]=arr[1];
return v;
},{});
console.log(obj.b);
1、当浏览器关闭以后,自动清除cookie中存储的数据,当设定存储数据的生存周期时就可以长期保存了
2、cookie存储是按照路径存储的,上层路径中存储的数据,可以在下层路径中获取,下层路径中的存储
的cookie不能在上层中查看,可以在下层路径中设置;Path=/ 路径来存储到上层路径中,也可以从上层
设置下层路径
3、不同域cookie是不能互相访问的
4、cookie会自动在提交表单,打开页面,刷新页面,ajax通信时,自动发送到服务器中,并且服务器
也可以给返回页面中设置cookie,在通信时,是自动携带往返于浏览器和服务器之间
5、cookie存储的数据不能超过5k
设置cookie的生命周期
var date=new Date();
date.setFullYear(2023);
document.cookie="a=3;expires="+date.toUTCString();
//设置生存周期时间 注意使用UTC字符串
设置cookie的作用域
document.cookie="b=3;Path=/ab";
console.log(document.cookie)
console.log(document.cookie)
webstorage
分为localStorage与sessionStorage
本地存储
设置
localStorage.a=1;
localStorage.b=2;
localStorage.setItem(“a”,“10”);
获取
console.log(localStorage.b);
console.log(localStorage.getItem(“a”));
删除
delete localStorage.a;
localStorage.removeItem(“a”);
清除所有的存储数据
localStorage.clear();
不管是webStorage还是cookie,只能存储字符串
如果存储数组或者对象,必须先试用JSON.stringify将这个对象转换为JSON字符串,然后存储
1、cookie大小5k,webStorage是5M
2、cookie存储是按照域名和路径存储,不能域名之间不能相互获取,下层路径可以获取上层路径
的数据,上层路径不能获取下层路径的数据。localStorage不区分路径关系,不同域不能互相访
问,sessionStorage不单纯不同域名不能访问,即使同一个页面在不同窗口打开数据也不能共享
sessionStorage仅在当前窗口数据有效
3、cookie存储时可以设置过期时间,可以是会话级。localStorage是长期存储的,不删除时
不会丢失,sessionStorage是会话级,关掉窗口就丢失
4、cookie在提交表单,刷新页面,访问页面,通信都会自动携带往返于浏览器于服务器之间,但是
webStorage数据不会自动往返于浏览器和服务器之间,只存储当前浏览器中