上一题下一题

localStorage、sessionStorage、IndexedDB 在容量、同步阻塞和事务语义上的差异

进阶版
来源:jd中级工程师浏览器存储机制IndexedDBWeb Storage API
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

这三个都是浏览器端存储方案,但定位不太一样。

localStorage 和 sessionStorage 都属于 Web Storage,API 比较简单,都是 key value 形式,而且值只能存字符串。

容量上,一般 localStorage 和 sessionStorage 都在 5MB 左右 ,不同浏览器会有差异。localStorage 是持久化存储,除非主动删除或者用户清理浏览器数据,否则一直存在;sessionStorage 只在当前标签页会话内有效,标签页关闭后就没了,而且不同标签页之间不共享。

同步阻塞方面,localStorage 和 sessionStorage 的 API 都是 同步的 ,比如 getItem、setItem 会阻塞主线程。如果数据量比较大,或者频繁读写,就可能影响页面性能,所以它们更适合存少量配置类数据,比如 token、主题配置、简单状态等。

事务语义上,localStorage 和 sessionStorage 基本没有真正的事务能力。一次 setItem 可以认为是原子写入,但不支持多条

登录后查看完整内容