技术与生活 / 一篇记录
把界面偏好交给 localStorage,需要哪些兜底?
它提供同源的字符串键值存储,适合主题和语言等偏好。用户清理数据、存储受限或浏览模式变化时,这些值都可能不存在,代码需要合理缺省行为。
本地存储适合保存界面偏好,但其值是字符串并且可能被用户清除。
实际怎么检查
以下示例可在现代浏览器的开发者工具中观察;涉及 DOM 的代码需要在网页环境运行。
localStorage.setItem('theme-demo', 'dark'); console.log(localStorage.getItem('theme-demo'));
在同源页面刷新后读取,再删除示例键。
遇到异常再检查什么
读写时考虑异常处理,对结构化内容明确 JSON 格式。给键加上项目或功能前缀,也能减少同源多个应用之间互相覆盖的风险。
读取旧版偏好格式时,可以加入版本号或迁移逻辑。值存在并不代表它仍符合当前结构;解析失败后应回到合理默认值,而不是让整个页面因为一个偏好键无法打开。
不要把它当作可靠数据库或存放高敏感凭据的保险箱。
参考:JavaScript 文档。