浏览器缓存
浏览器缓存有三种:cookie,sessionStorage,localStorage
1: 相同点:都保存在浏览器,同源的
2: 不同点:
传递方式不同:cookie的数据始终在同源的http请求中携带,在浏览器和服务器之间来回传递
sessionStorage,localStorage不会主动把数据发送到服务器,存储在本地
数据大小不同:cookie只有不到4K,sessionStorage,localStorage虽然有大小限制但是可以达到5M甚至更多。
数据有效期不同;cookie可以设置过期时间,在过期时间之前都有效即使关闭浏览器窗口。localStorage始终有效,需要手动移除。sessionStorage仅在当前浏览器窗口有效,关闭浏览器窗口就失效。
作用域不同:cookie和localStorage在所有同源窗口中数据是共享的,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面。
3: 存储数据的方法:
保存数据语法:
localStorage.setItem(“key”, “value”);
sessionStorage.setItem(“key”, “value”);
读取数据语法:
var lastname = localStorage.getItem(“key”);
var lastname = sessionStorage.getItem(“key”);
删除数据语法:
localStorage.removeItem(“key”);
sessionStorage .removeItem(“key”);
cookie保存数据的方法:
setCookie(c_name, c_value, expireTime) {
const expireDate = new Date();
expireDate .setTime(expireDate .getTime() + expireTime );
document.cookie = c_name + '=' + escape(c_value) + ';expires=' + expireDate.toUTCString();
}
cookie读取数据的方法:
getCookie(name) {
if (document.cookie.length > 0) {
let arr = [];
const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
arr = document.cookie.match(reg);
if (arr.length > 0) {
return unescape(arr[2]);
} else {
return null;
}
}
return '';
}
cookie删除
只需将过期时间减1,先调用getCookie,获取value,再重新设置即可