[js] 模拟 localStorage 时如何实现过期时间功能

1.存储时记录下有效截止时间
2.取数据时判断是否超过有效时间,在有效期内则返回,不在则提示或返回空并且将其删除
class MyStorage {get(key) {const wrapValue = localStorage.getItem(key)if (wrapValue == null) {return undefined}const {value, expires} = JSON.parse(wrapValue)
-    if ((expires != null && Date.now() < expires) || expires == null) {
+    if (!expires || Date.now() < expires) {return value}
-
+   localStorage.rmeoveItem(key)return undefined}set(key, value, period) {const wrapValue = { value };if (period != null) {wrapValue.expires = Date.now() + period;}localStorage.setItem(key, JSON.stringify(wrapValue));}
}

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎发表自己的看法

主目录

与歌谣一起通关前端面试题

[js] 模拟 localStorage 时如何实现过期时间功能相关推荐

  1. Spring boot集成Redis实现sessions共享时,sessions过期时间问题分析

    Springboot鼓励零配置的方式,帮你做好大部分重复劳动的事,好到不能再好:具体的Redis安装方法和Springboot集成Redis方法,可以去搜索相关文章或参考该文章http://www.c ...

  2. js利用localStorage和sessionStorage完成记住我功能

    最近在研发vue的前后端分离项目,特抽取一段vue中判断是否点击记住我的代码片段以供参考: //201在后端返回来是登陆成功if (res.data.code === 201) {//判断是否需要记住 ...

  3. java redis设置过期时间_Redis的一些核心原理

    点关注,不迷路:持续更新Java相关技术及资讯!!! 一.Redis的单线程和高性能 Redis 单线程为什么还能这么快? 因为它所有的数据都在内存中,所有的运算都是内存级别的运算(纳秒),而且单线程 ...

  4. ElasticSearch文档过期时间设置

    [b][size=large]新建索引启用过期设置:[/size][/b] PUT testindex{ "mappings": { "testtype": { ...

  5. cookie设置过期时间

    封装初衷-不想每次设置cookie的过期时间都写一遍,比较烦! 目前这个包放在npm库中,下载npm install happycookie class happyCookie {constructo ...

  6. 自动售卖软件服务器,连锁收银系统中销售商品时自动同步服务器时间

    在使用连锁版收银软件时,大家可能都会遇到一个头疼的问题:多台收银机电脑时间不一致,造成数据统计时出现偏差.一个较常见的现象是由于某种原因(中毒,主板电池没电,人为误操作等)导致电脑时间错误,比如目前时 ...

  7. js模拟钢琴演奏代码js特效

    下载地址 js模拟钢琴演奏代码特效,多功能网页钢琴,支持多种风格选择,音程调节,键盘控制钢琴演奏特效. dd:

  8. 如何给localStorage设置一个过期时间?

    引言 ​  这个话题其实在上次分享<小程序填坑记里讲过了>已经讲过(大佬可绕过哦-),但后来群里/评论都有些同学,提到了一些疑问,问能否单独整理一篇更为详细的分享,讲解一下细节和完善提到的 ...

  9. 前端小白闲着没事,封装一个可以设置过期时间的localStorage存储函数,在vue脚手架中使用

    本身localStorage 是没有这个功能的,除非手动删除要不永久保存在本地. seesionStorage 我们就不考虑 他这个只要网页的标签关闭了 在当前标签就自动清除了存储. 在工作中 我们用 ...

最新文章

  1. matplotlib.pyplot中add_subplot方法参数111的含义
  2. UVa 1607 (二分) Gates
  3. 英特尔显卡linux管理_英特尔 11 代酷睿大揭秘:这次全是大招
  4. word2vec 评测 sg=0 sg=1 size=100 window=3
  5. 首届Hadoop技术社区中国meetup来袭!对外报名正式启动!
  6. Kubernetes之kubectl常用命令
  7. MATLAB软件禁用利好,Matlab被禁用?一款国产软件站了出来说:我就是中国的Matlab...
  8. 软件层面可以做到重启本地串口吗_手机关机还是重启好?get这几招,手机更流畅...
  9. 中间的数(若已经排好序)
  10. java版开源工作流引擎ccflow从表数据数据源导入设置
  11. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
  12. g楦和h楦的区别_药品与保健品的区别
  13. java迷题_Java——类谜题
  14. 阻滞增长模型求解_马尔萨斯与阻滞增长模型对于人口预测的分析
  15. \r,\n,\r\n的区别
  16. Mac 软件和学习经验分享
  17. IE7IE8兼容性设置_服务器端设定
  18. 260. 只出现一次的数字 III【我亦无他唯手熟尔】
  19. python爬取阿里cve漏洞库信息
  20. java中Collections.sort() 排序函数的用法

热门文章

  1. 7.组件连线(贝塞尔曲线)--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)...
  2. Android-入门学习笔记-使用 CursorLoader 加载数据
  3. 【python】os.getcwd和getcwdu
  4. 使用air进行移动app开发常见功能和问题(二)
  5. SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
  6. 职称计算机证书 评中级职称,软考证书如何申请评职称及职称申请流程的详细介绍...
  7. 值大于为此列指定的允许精度_电能质量测试精度会受到哪些因素影响?如何解决?...
  8. feign调用多个服务_Spring Cloud 快速入门系列之feign–微服务之间的调用
  9. idea android 模块,IntelliJ IDEA 12 - 新的Android应用程序模块向导失败,“无法找到模块的资源目录”...
  10. WordPress 多媒体库添加分类和标签支持