localStorage单域名容量约5MB(Safari无痕模式或更低),按源隔离,超限抛QuotaExceededError;仅支持字符串,存对象需JSON序列化;应try/catch写入并降级处理;大数据量推荐IndexedDB。
localStorage 在 JavaScript 中用于在浏览器中持久化存储字符串数据,但有明确的容量限制和使用边界。
大多数现代浏览器将 localStorage 的单域名存储上限设为 5MB 左右(例如 Chrome、Firefox、Edge),部分浏览器(如 Safari 在无痕模式下)可能低至 2.5MB 或直接禁用。这个限制是**按源(origin)计算**的,即协议 + 域名 + 端口相同才共享同一份 localStorage。
setItem() 会抛出 QuotaExceededError 异常JSON.stringify(),读取时再 JSON.parse()
不能假设 setItem 一定成功,尤其在长期运行或高频写入的场景中,应主动捕获错误并降级处理:
localStorage.setItem(key, value)
QuotaExceededError 后,可清空过期项、压缩数据(如移除冗余字段)、或提示用户清理缓存当数据量大、结构复杂或需要二进制支持时,localStorage 不是最佳选择:
验一致性基本上就这些。localStorage 简单好用,但别把它当数据库用——清楚它的边界,才能避免运行时意外崩溃。