前言:
LocalStorage是浏览器存储轻量数据的一个方式,平常在本地化存储时可能会使用到,但在使用过程中会发现localStorage存在以下问题:
- 存储量小,卡顿问题: 通常限制在 5MB 左右(具体取决于浏览器),如果字符串过长,会存不下导致卡死,存储内容多会消耗内存空间
- 存取不方便: 针对非字符串:存储需要序列化为,取值时反序列化,操作 不方便
- Key-value混乱
LocalStorage 的适用场景
- 用户首选项(如暗黑模式、语言设置)
- 缓存简单的数据(如表单草稿)
- 轻量级的离线功能支持
对于更复杂的场景(如需要存储大量数据或支持异步操作),推荐使用 IndexedDB 或封装库 localForage:
一、IndexedDB
IndexedDB 是一个基于 JS 的面向对象数据库。
允许存储和检索用键索引的对象;可以存储结构化克隆算法支持的任何对象。
优点
- 存储大:支持存储大量结构化数据
- 灵活性:支持复杂的查询、键索引、多种数据类型等
- 异步存取 IndexedDB 的读取和存储都是异步的,不会阻塞浏览器进程
缺点:
- 复杂性:使用起来相对复杂,学习成本高
学习成本太高怎么办?
不慌,早就有大佬为我们封装好了,主角登场~
二、封装IndexedDB:localForage
localForage 是一个封装库,简化了 IndexedDB 的使用,同时还提供了对其他存储机制(如 LocalStorage 和 WebSQL)的统一接口。
地址: