自定义办法设置 localStorage 过期时间
introduction
在 web 开发中,我们知道 cookie、session、localStorage
都可以保存用户的数据,cookie
的 domain、path 限制了 cookie 的跨域, 有数量和大小的限制,可以设置有效时间。 session
是后台在浏览器注入一个设置了 httponly 的不可读取的 cookie , session data
由后台保存在数据库或者内存中,在web中,session 是靠 cookie 作为唯一标示来实现的,也可以设置过期时间。 localStorage
是 H5 的数据存储办法, 也是有大小限制的,但是不可以设置过期时间。 本文主要说的是如何自定义办法让 localStorage
实现过期时间。
module.exports = {// 过期时间,默认30天age: 30 * 24 * 60 * 60 * 1000,/*** 设置过期时间* @param age* @returns {exports}*/setAge: function (age) {this.age = age;return this;},/*** 设置 localStorage* @param key* @param value*/set: function (key, content) {localStorage.removeItem(key);let _time = new Date().getTime();let _age = this.age;let value = {};value._value = content;// 加入时间value._time = _time;// 过期时间value._age = _time + _age;localStorage.setItem(key, JSON.stringify(value));return this;},/*** 判断一个 localStorage 是否过期* @param key* @returns {boolean}*/isExpire: function (key) {var isExpire = true,value = localStorage.getItem(key),now = new Date().getTime();if (value) {value = JSON.parse(value);// 当前时间是否大于过期时间isExpire = now > value._age;} else {// 没有值也是过期}return isExpire;},/*** 获取某个 localStorage 值* @param key* @returns {*}*/get: function (key) {let isExpire = this.isExpire(key);let value = null;if (isExpire) return value;value = localStorage.getItem(key);value = JSON.parse(value);return value._value;}
};
usage
var localstorage = require('./localstorage.js');
localstorage.setAge(24*60*60*1000).set('a': 'abc').set('b',{a:1,b:2})
在ios设备上无法重复setItem()
另外,在iPhone/iPad上有时设置setItem()时会出现诡异的QUOTA_EXCEEDED_ERR错误,这时一般在setItem之前,先removeItem()就ok了。
自定义办法设置 localStorage 过期时间相关推荐
- Vue - 路由导航守卫控制访问权限,设置 localStorage 过期时间
Vue 路由导航守卫控制访问权限,设置 localStorage 过期时间 一. 路由导航守卫 二. 路由导航守卫 简单使用 三. 使用路由导航守卫设置 token 过期时间 导航守卫: https: ...
- 转:设置session过期时间
原文地址:设置session过期时间 Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.session其实就是一个Map,键=值对,通过session.getAt ...
- cookielifetime php_php中实现精确设置session过期时间的方法
大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session. ...
- spring boot 缓存redis设置定时过期时间
前言 本篇文章分享的就是spring boot中的一个轮子,spring cache注解的方式实现接口数据缓存.默认的配置想非常简单,但是有一个弊端是缓存数据为永久缓存,本次将介绍如何设置接口缓存数据 ...
- SpringBoot @Cacheable Redis 设置缓存过期时间
1.x 设置 @Bean @Primary public CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManag ...
- 设置session时间 php,php中实现精确设置session过期时间的方法
这篇文章主要介绍了php中实现精确设置session过期时间的方法,需要的朋友可以参考下 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一 ...
- 在Redis中设置了过期时间的Key,需要注意哪些问题?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...
- fastjson 添加key value_Redis中设置了过期时间的Key,那么你还要知道些什么?
来源:http://i7q.cn/4NHBun 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 1. DEL/SET/GE ...
- 在 Redis 中设置了过期时间的 Key,需要注意哪些问题?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...
- 【干货】在Redis中设置了过期时间的Key怎么办?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...
最新文章
- 进行博客博文管理的设计
- kotlin条件表达式
- OpenCL与异构并行计算
- Linux命令行文档查看cat、less、more、head、tail和图片查看
- 增加新分类daily——“每天学了啥?”
- SD卡读写扇区注意事项(转)
- java 获取插入数据的自增长id
- 作者:周宗放(1950-),男,电子科技大学经济与管理学院教授、博士生导师,风险分析与数据科学研究中心主任...
- java 属性访问修饰符_Java中的访问修饰符(二十七)
- matlab ssb,MatlabSSB信号的仿真分析.doc
- Ubuntu14.04快速搭建SVN服务器及日常使用
- 和大家一起分享几组Android游戏源码
- jsmind源码初探
- 百度信誉认证体系初级实名认证即将取消,这意味着什么?
- linux查找文件夹名称
- px和毫米的换算_关于PX像素、PT点数、CM厘米、MM毫米之间的换算
- Aggressive cows题目翻译
- 如何拼局域网所有ip_在windows命令行批量ping局域网内IP
- [视频]K8软件破解脱壳入门教程
- 监听浏览器返回,可清除历史记录(移动端:手势返回)(vue)
热门文章
- 菲波那契数列编程实现
- 两台windows笔记本创建家庭组实现文件共享
- How AI Is Transforming Medical Imaging
- Pyinstaller将外部数据文件打包到可执行文件中(onefolder or onefile)教程
- vba窗体 点击增加减少_EXCEL之VBA-窗体实例多页控件的基础应用
- wince系统usb刷机工具_中兴B860AV1.2-S905L刷机救砖教程,喜欢的分享一下
- java 性能测试文档模板_最好用的数据库文档生成工具
- centos rpm安装mysql5.6_CentOS 7下使用RPM安装MySQL 5.6
- python中使用Opencv进行人脸检测
- LUOGU P4027 [NOI2007]货币兑换 (斜率优化+CDQ分治)