localStorage与sessionStorage封装可设置过期时间的缓存
localStorage的封装:
/**
* localStorage
* @调用:_local.set('access_token', '0987654321', 5000);
* @调用:_local.get('access_token');
*/
var _local = {
//存储,可设置过期时间
set(key, value, expires) {
let params = { key, value, expires };
if (expires) {
// 记录何时将值存入缓存,毫秒级
var data = Object.assign(params, { startTime: new Date().getTime() });
localStorage.setItem(key, JSON.stringify(data));
} else {
if (Object.prototype.toString.call(value) == '[object Object]') {
value = JSON.stringify(value);
}
if (Object.prototype.toString.call(value) == '[object Array]') {
value = JSON.stringify(value);
}
localStorage.setItem(key, value);
}
},
//取出
get(key) {
let item = localStorage.getItem(key);
// 先将拿到的试着进行json转为对象的形式
try {
item = JSON.parse(item);
} catch (error) {
// eslint-disable-next-line no-self-assign
item = item;
}
// 如果有startTime的值,说明设置了失效时间
if (item && item.startTime) {
let date = new Date().getTime();
// 如果大于就是过期了,如果小于或等于就还没过期
if (date - item.startTime > item.expires) {
localStorage.removeItem(name);
return false;
} else {
return item.value;
}
} else {
return item;
}
},
// 删除
remove(key) {
localStorage.removeItem(key);
},
// 清除全部
clear() {
localStorage.clear();
}
}
sessionStorage的封装:
/**
* sessionStorage
*/
var _session = {
get: function (key) {
var data = sessionStorage[key];
if (!data || data === "null") {
return null;
}
return JSON.parse(data).value;
},
set: function (key, value) {
var data = {
value: value
}
sessionStorage[key] = JSON.stringify(data);
},
// 删除
remove(key) {
sessionStorage.removeItem(key);
},
// 清除全部
clear() {
sessionStorage.clear();
}
}
正在加载评论...
栏目列表
推荐阅读
- js控制滚动条到最底端(置底)和最顶端(置顶)
- bootstrap导航菜单,手机和PC端自适应
- js将图片转化为二进制流
- javascript/jquery/js获取地址栏url传递的参数值的方法
- js辨别访问浏览器判断是手机,android,微信,pc还是ios系统
- Html5 canvas 简单画布画板例子源码
- IE浏览器下Ajax发送Post请求时提交中文乱码
- js 中获取当前系统时间
- 使用JS获取当前页面的URL,端口,协议,IP(网址信息)
- jquery.lightTreeview.js树形菜单插件例子
- js获取当前域名
- XMLHttpRequest封装同步请求的例子
- ztree加载树形菜单控件事列
- JS获取屏幕分辨率,可见区域,可用工作区等大小
- js利用Date.prototype.Format对时间格式化处理,yyyy-MM-dd HH:mm:ss:SS
- jquery.js和jquery-1.4.2.min.js的区别
- jquery追加元素的几种方法append(),prepend(),after(),before(),insertAfter(),insertBefore()
- 引入script地址时,并携带参数,js获取script标签上的属性数据值
- javascript怎么禁用浏览器后退按钮
- jquery和javascript判断页面元素是否存在