添加了缓存功能与命名空间的 localStorage 与 sessionStorage
发布于 8 年前 作者 lmk123 4619 次浏览 来自 分享

做前端的同学对 localStorage 与 sessionStorage 都不陌生吧?查看 MDN 的简介

我个人认为,原生的 localStorage 与 sessionStorage 有以下缺点:

  • 只能存储字符串。所以我们经常要手动 JSON.parseJSON.stringify
  • 没有命名空间。为了避免冲突,我们经常需要自定义一个“前缀”,比如 localStroage.setItem('home-' + key, value)
  • 每次都直接从 localStorage 或 sessionStorage 里读取值的话,性能比较低。有一个缓存层会好很多

如果有了上面提到的“命名空间”和“缓存层”的话:

  • 有了缓存层,我们甚至可以先把值保存进缓存里,等到网页关闭(即触发 window.onunload 事件时)再存进 localStroage 里
  • 有了命名空间,我们就可以只删除此命名空间下的数据,而不是整个清空 localStorage 与 sessionStorage

基于以上几点,我开发了 NamedStorage

  • JSON 友好
  • 缓存层
  • 命名空间
  • “懒保存”

详情见 GitHub 主页:https://github.com/lmk123/NamedStorage

欢迎点赞和提 issue!

2 回复

pouchdb,兼容性和稳定性不错

@klausgao Pouchdb 确实很不错!只是有的简单功能只需要 localStorage 或 sessionStorage 就够了,所以有了这个

回到顶部