有关 LocalStorage 没有过期时间,岂不是僵尸存储越来越多?

2021-03-16 22:00:26 +08:00
 LeeReamond

如题,读到 localstorage 不像 cookie,没有过期时间这一说法,产生了一个疑惑。

我感觉大多数网站应该都有使用 localstorage 的需求,毕竟谁不想存点东西呢,cookie 又太小了。但是存下去之后,如果用户关闭了网页界面,那么页面当中的 js 脚本应该是立即关闭的,不会有什么上下文管理器一类的东西来确保资源被正确释放。

如果用户之后再次访问该网站那还好说,如果用户从此不再访问该网站的话,岂不是意味着被这个网站储存的 localstorage 存储空间会被一直占用下去直到天荒地老?

1996 次点击
所在节点    问与答
19 条回复
devld
2021-03-16 22:13:20 +08:00
ASpiral
2021-03-16 23:45:57 +08:00
@devld 按照第一个链接本地测了下,向 localStorage 存储一个长度大于 5242876 的字符串时报错,也就是容量接近 5M ?
第二个链接是 IndexedDB,不是 localStorage 吧
Quarter
2021-03-16 23:46:22 +08:00
我记得浏览器清缓存是可以清 localStorage 里面的东西的
iConnect
2021-03-17 00:08:57 +08:00
存大文件之前还需要判断,满了或存不下,先清后用
autoxbc
2021-03-17 00:20:13 +08:00
@ASpiral #2 文章里说 IndexedDB,asm.js caching,Cache API,Cookies 被同一个配额工具管理
wolfan
2021-03-17 00:39:55 +08:00
localStorage 还是可以手动清理的,而且你们都不会不定期的清扫浏览器缓存垃圾吗?
LeeReamond
2021-03-17 00:45:46 +08:00
@wolfan 手动清理当然可以,不可以就太奇怪了。不过一般不会手动清理的吧,手动清理不是某安全卫士干的活?正常人就装个 chrome,chrome 又不会提示你清理
LeeReamond
2021-03-17 00:52:04 +08:00
@ASpiral 这个 5M 要如何理解,是单 key 对应 5M,还是所有数据加起来不能超过 5M ?
wolfan
2021-03-17 00:56:40 +08:00
@LeeReamond 呃…… 你真的会用浏览器?还是说你只会浏览网页?清理个缓存垃圾为什么需要 XX 卫士,右上角=更多工具=清理浏览数据 或者设置里找。都是很明显的。

手机浏览器上不也都在设置里有个清理的选项么。
yyfearth
2021-03-17 01:02:18 +08:00
@LeeReamond 整个不超过 5M
LeeReamond
2021-03-17 01:55:12 +08:00
@wolfan 建议提高阅读理解能力,“chrome 又不会提示你清理”的意思是 chrome 不会提示你清理,不是 chrome 不会清理。
love
2021-03-17 09:00:04 +08:00
这个完全不需要特别关心,因为浏览器整个占用空间不会超过可用空间的一半,否则就会开启清理进程,越长时间不用的就会被优先清理。所以呢你存储空间少的时候他会自动清理,多的时候你也不用关心,这个就相当于一个缓存而已
ASpiral
2021-03-17 11:27:46 +08:00
作为程序员应该从开发的角度去看吧,比如已有的 localStorage 数据量较大时如何清理,当向 localStorage 写入大量数据时如何处理。
不用考虑用户怎么清理 localStorage 的数据,大部分用户根本不知道 localStorage 的存在
ch2
2021-03-17 13:05:27 +08:00
localStorage 一般用于保存只适合在本地使用的元数据,它毕竟不是保存文件或者当数据库用的,不会占多大的空间,否则就是误用
LeeReamond
2021-03-17 16:16:32 +08:00
@ch2 话说,那这么说的话比如视频网站之类的,已经播放过的进度条不用重新加载,不是靠 js 存在哪个存储里,而是单纯靠浏览器的缓存策略在支撑?
ch2
2021-03-17 16:44:39 +08:00
@LeeReamond #15 浏览记录是保存在云端的
LeeReamond
2021-03-17 21:01:35 +08:00
@ch2 并非浏览记录,你加载完一段视频后,不关闭网页的情况下拖动进度条是不需要再加载的,指这件事
ch2
2021-03-17 21:05:41 +08:00
@LeeReamond #17 那个包括在内
LeeReamond
2021-03-18 06:38:28 +08:00
@ch2 ?我觉得你说的是另外一个东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/762268

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX