微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ImmortalDB 用于浏览器的弹性键值存储

程序名称:ImmortalDB

授权协议: MIT

操作系统: 跨平台

开发语言: JavaScript

ImmortalDB 介绍


ImmortalDB 是用于浏览器的弹性键值存储

ImmortalDB 是在浏览器中存储持久键值数据的最佳方法,保存在其中的数据被冗余地存储在
CookiesIndexedDBLocalStorage
SessionStorage。如果其中的任何数据被删除或损坏,ImmortalDB 会进行自我修复。

举个例子,清除 cookie
是一种常见的用户操作(甚至对非技术用户来说,也是如此)。一般在没有存储压力警告的情况下,浏览器也会草率地删除
IndexedDB、LocalStorage 和 SessionStorage。而 ImmortalDB 对于这种情况,则是有弹性的。

这样说吧,ImmortalDB 就像 Evercookie,但它

  1. 会积极地被维护和记录;

  2. 提供了一个简单的,现代的,基于 Promise 的 API;

  3. 在可靠性和对用户的尊重间取得平衡。数据可靠地被存储着,但如果用户想清除 cookie 和应用程序的存储,也可以自行清除数据;

  4. 不使用恶意的漏洞利用工具(exploits),也不使用 Flash、Silverlight 或 Java 等第三方插件。只使用标准的、经过批准的 HTML 5 API;

  5. 不破坏性能用户体验。例如,Evercookie 的 CSS 历史记录敲门(Knocking)可能会引起大量的后台 HTTP 请求产生,加载 Silverlight 或 Flash 可能会引发未被请求的许可模态框(permission modals)、或是颠簸(Thrashing用户的磁盘。

ImmortalDB 是如何工作的

当您将键值对存储在 ImmortalDB 中时,该键和值会冗余地保存在浏览器的 cookie、IndexedDB、LocalStorage 和
SessionStorage 数据存储中。

当您通过键检索值时,ImmortalDB 会:

  1. 在每个数据存储中查找那个密钥;

  2. 计算每个唯一返回值;

  3. 将最常见的返回唯一值确定为“正确”值;

  4. 返回这个正确的值。

接着,ImmortalDB
会“自愈”:如果任何数据存储区返回的值与所确定的正确值不同,或是根本没有值,则将正确的值重写到该存储区。通过这样的方式,一致性、可靠性和冗余得到维持。

ImmortalDB 官网

https://github.com/gruns/ImmortalDB

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐