js的存储在实际应用中使用的也非常广泛,那你知道什么时候用什么存储吗?你有想过这个问题吗?还是说你是习惯用哪个就用哪个呢?
1、sessionStorage
2、localStorage
3、cookie
4、session
- 1、从存储大小来区分,cookie最小,sessionStorage,和localStorage较大,大约在5M左右。
- 2、从时效性来区分,localStorage是永久存储,除非主动删除,sessionStorage在页面关闭的时候消失,cookie可以设置失效时间。
- 3、从使用场景来区分,localStorage 可以用来存储比较重要,经常使用的数据,不会丢失。sessionStorage 可以使用在登录会话界面 cookie 多使用在与服务端通信的时候的数据。
- 4、cookie没有更加具体的api操作,需要自己封装一系列增删改查。
- 5、session用于服务端存储。和cookie类似。
使用方法:
存储:localStorage.setItem(name,value);
sessionStorage.setItem(name,value);
document.cookie='name=value';//一般会使用封装好的方法
获取:localStorage.getItem(name,value);
sessionStorage.getItem(name,value);
document.cookie='name';//一般会使用封装好的方法
cookie的方法封装:
设置cookie
function setCookie(name, value, times) {
let t=new Date();
t.setDate(t+times);
t.toUTCString();
document.cookie = `${name}=${value};expires=${times}`
}
获取cookie
function getCookie(name){
let value;
let cookie=document.cookie;
let arr=cookie.split(';')
for(let i=0;i<arr.length;i++){
let s=arr[i].indexOf('=');
if(s>-1){
console.info(arr[i].substring(0,s))
if((arr[i].substring(0,s)).replace(/\s/,'')==name){
let a=arr[i].indexOf('=');
value=arr[i].substring(a+1,arr[i].length)
}
}
}
return value
}
删除cookie,可以把过期时间设置成负数。