cookie缓存是前端最常用的缓存之一。
使用也很简单:
document.cookie = name + '=' + value + ';expires=' + expiresTime//其中//name:cookie名称//value:cookie内容,类型为string//expiresTime:失效时间
我常常使用这样的封装:
const setCookie = function(name, value, minutes) { var millisecond = new Date().getTime(); var expiresTime = new Date(millisecond + 60 * 1000 * minutes); document.cookie = name + '=' + value + ';expires=' + expiresTime}
一直没有发现有什么问题,直到有一天有个需求是前端设置一个数据的过期时间,过期后重新请求,这个时候才发现设置过期时间后cookie并没有自动清除。
查询资料发现cookie过期时间是需要GMT时区,expiresTime获取的是本地时间,而且不去打印cookie数据只是查看控制台数据是很难看出来的。
所以我将方法改了一下:
const setCookie = function(name, value, minutes) { var millisecond = new Date().getTime(); var expiresTime = new Date(millisecond + 60 * 1000 * minutes); document.cookie = name + '=' + value + ';expires=' + expiresTime.toGMTString()}
完结,撒花!