首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说一说如何实现可过期的localstorage数据?
[问答题]
说一说如何实现可过期的localstorage数据?
添加笔记
求解答(0)
邀请回答
收藏(126)
分享
纠错
46个回答
添加回答
43
我想学习i
一种是惰性删除:惰性删除是指获取数据的时候,拿到存储的时间和当前时间做对比,如果超过过期时间就清除Cookie。 另一种是定时删除:每隔一段时间执行一次删除操作,并通过限制删除操作执行的次数和频率,来减少删除操作对CPU的长期占用。 LocalStorage清空应用场景:token存储在LocalStorage中,要清空
发表于 2022-06-25 15:58:11
回复(0)
12
牛客526141857号
1.惰性删除 2.定时删除
发表于 2022-04-20 11:32:44
回复(0)
5
陈粒的猫
1、惰性删除:存储数据时使用对象类型,添加一个key值为当前存储时间,当下一次使用时,判断与当前时间的间隔,如果超过过期时间就清除数据; 2、定时删除:每隔一段时间进行一次删除操作,通过限制删除操作执行的次数和频率,来减少删除操作对CPU的长期占用,获取所有设置过期时间的key判断是否过期,过期就存储到数组中,遍历数组,每隔1S(固定时间)删除5个(固定个数),直到把数组中的key从localstorage中全部删除。
发表于 2023-07-01 16:26:20
回复(0)
4
读心201810151316627
localStorage怎么还掺入了cookie呢,这样看起来很容易搞混
发表于 2023-03-05 20:52:48
回复(0)
4
牛客663468082号
惰性删除和定时删除
发表于 2022-05-23 11:41:36
回复(0)
3
cmls
惰性删除(用到再删)定时删除(数组垃圾箱)
发表于 2022-06-26 23:13:19
回复(0)
1
牛客906079186号
1.插入数据时,添加一个过期时间。 2.启动一个定时器,每间隔一段时间,检测下过期数据。 3.过期就自动删除,未过期就跳过
编辑于 2024-03-13 10:18:35
回复(0)
1
kumoko
1.惰性删除,存储时,设置当前时间,并设置一个expire,在获取localstorage时,用当前时间减去设置的时间,如果时间间隔大于expire,就删除localstorage的数据 2.定时删除,存储时,设置一个expire,利用setTimeout,time设置为expire,到时间后删除localstorage的数据
发表于 2023-10-09 16:55:30
回复(0)
0
牛客9625号
惰性删除:获取数据的时候,拿到存储的时间和当前时间做对比,如果超过过期时间就清除cookie。 定期删除,隔一段时间执行一次删除操作,要控制次数和频率,减少删除操作对cpu的占用
发表于 2025-12-08 21:44:53
回复(0)
0
DRZv
核心:存储“数据+过期时间戳”,读取时校验。 1. 存储: const setExp = (k, v, m) => localStorage.setItem(k, JSON.stringify({v, t: Date.now() + m*60*1000})); 2. 读取: const getExp = (k) => { const d = JSON.parse(localStorage.getItem(k)||'{}'); return Date.now() > d.t ? (localStorage.removeItem(k), null) : d.v; } 用法: setExp('key', '值', 30) (30分钟过期), getExp('key') (过期返回null)。
发表于 2025-10-30 00:22:25
回复(0)
0
秋水夏树
1. 惰性删除 2. 定时删除
发表于 2025-09-20 19:18:41
回复(0)
0
WangYibo
1.惰性删除 2.定时删除
发表于 2025-07-30 10:19:03
回复(0)
0
平平无奇一米六
(1)localStorage存储的数据是永久存在的,除非手动清除; (2)惰性删除:在存储localStorage数据时用对象类型存储,添加一个key用来记录当前存储的时间,之后获取数据时将存储时间和当前获取的时间比对,若超过设置的过期时间则清除cookie。 (3)定时删除:每隔一段时间执行一次删除操作,并限定删除操作的次数和频率来减少删除操作对CPU的长期占用。具体操作是获取所有设置了过期时间的key,判断是否过期,过期则存储到数组中,遍历数组,每隔一段固定时间删除一定个数的key,例如每1s删除5个key,直到把数组中的key从localStorage中全部删除。 (4)应用场景:token存储在localStorage里就需要清除
发表于 2025-06-17 22:10:32
回复(0)
0
狸漠
因为localstorage不会过期,所有需要额外方法来清楚。有两种方法,第一种是惰性删除,再使用是查看使用日期和存储日期是否相同,不相同则为过期,删除;第二种为定时删除,设定好固定的时间清除localstorage,同时也要限制清楚频率反正占用太多cpu。
发表于 2025-04-13 21:15:01
回复(0)
0
人生在世201904171604206
惰性删除,存储的数据不会在键值过期后,立马删除,而是在下次使用的时候检查是否过期,过期则删除; 定时删除,每个一段时间,执行一次删除操作;
发表于 2024-12-25 11:44:51
回复(0)
0
又熬夜了的牛油果很孤独
localStorage只能用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。一种是惰性删除、一种是定时删除。 惰性删除是指某个键值过期后该键值不会被马上删除,而是等到下次使用的时候才会被检查到过期,此时才能得到删除。实现方法:存储数据是一个对象,该对象有两个key,一个是要储存的value值,一个是当前时间。获取数据的时候,拿到存储时间和当前时间对比,如果超过过期时间就清除cookie。定时删除是指:每隔一段时间执行一次删除操作,并通过限制删除操作执行的次数和频率来减少删除操作对CPU的长期占用。也有效减少了因惰性删除带来的对localDtorage空间的浪费。实现过程:获取所有设置过期时间的key判断是否过期,过期就存储到数组里,遍历数组,每隔1s删除5个,直到吧数组中的key从loaclStorage中删除。token存储在localStorage中要清空。
发表于 2024-11-13 14:46:22
回复(0)
0
贪睡的鲸鱼准备进厂
1.惰性删除:存入数据时同时存入有效时间,下次被访问时,先判断是否过期,过期了就删除,适用于不常访问的数据 2.定时删除,利用定时器,定时检查和删除过期的数据,实现了删除过期数据的自动化,适用于处理大量数据或数据频繁被访问的场景
发表于 2024-10-29 21:53:25
回复(0)
0
我已成为0offer的糕手
**`localStorage`** 用于长久保存网站数据,且没有自动过期时间,因此为了实现可过期的 `localStorage` 缓存,重点在于如何清理过期的缓存。目前有两种主要方法:**惰性删除**和**定时删除**。 ### 标准回答 1. **惰性删除**: - 当某个键值过期后,它不会被立即删除,只有在下次访问或使用该键值时才会检查它是否过期,并在确认过期时将其删除。 - **实现方法**:存储的数据以对象形式保存,包括两个键: - `value`:存储的实际数据值。 - `timestamp`:存储的时间戳(设置时间)。 - 在读取数据时,对比当前时间和存储的时间戳。如果超出过期时间,则删除该键值。 2. **定时删除**: - 定时删除是指定期检查并删除过期的缓存数据。这种方式通过控制删除操作的频率和次数来减少对 CPU 资源的长期占用。 - **实现方法**: - 每隔一段固定时间(例如 1 秒)检查 `localStorage` 中所有设置过期时间的键值,判断哪些已经过期。 - 将过期的键值存储到一个数组中,并按照一定的频率(如每秒删除 5 个)依次删除,直到清理完成。
发表于 2024-10-20 10:50:45
回复(0)
0
勤奋努力的马里奥在刷题
惰性删除和定时删除
发表于 2024-09-26 01:16:34
回复(0)
0
一个编程牛
惰性删除、定时删除
发表于 2024-09-03 21:44:14
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Javascript
上传者:
real1993
难度:
46条回答
126收藏
1697浏览
热门推荐
相关试题
ajax原理、如何实现刷新数据及优点?
迅雷
Javascript
评论
(7)
假定学生关系是S(SNo,SNam...
SQL
评论
(1)
以下关于死锁的描述中,哪一项是正确的?
操作系统
评论
(1)
下列选项中,管理员可以实现将普通开...
SQL
评论
(1)
某定时器时钟为48 MHz,预分频...
单片机
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题