浏览器缓存方法

115 阅读1分钟

浏览器缓存

浏览器缓存有三种:cookie,sessionStorage,localStorage

2.png

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,再重新设置即可