ImmortalDB 介绍
ImmortalDB 是在浏览器中存储持久键值数据的最佳 方法 ,保存在其中的数据被冗余地存储在 Cookies、IndexedDB、LocalStorage 和 SessionStorage。如果其中的任何数据被 删除 或损坏,ImmortalDB 会进行自我修复。
举个例子,清除 cookie 是一种常见的 用户 操作(甚至对非技术 用户 来说,也是如此)。一般在没有存储压力警告的情况下,浏览器也会草率地 删除 IndexedDB、LocalStorage 和 SessionStorage。而 ImmortalDB 对于这种情况,则是有弹性的。
这样说吧,ImmortalDB 就像 Evercookie,但它会积极地被维护和记录;
提供了 一个 简单的,现代的,基于 Promise 的 API;
在可靠性和对 用户 的尊重间取得平衡。数据可靠地被存储着,但如果 用户 想清除 cookie 和应用程序的存储,也可以自行清除数据;
不使用恶意的漏洞利用工具(exploits),也不使用 Flash、Silverlight 或 Java 等第三方 插件 。只使用标准的、经过批准的 html 5 API;
不破坏 性能 或 用户 体验。例如,Evercookie 的 css 历史记录敲门(Knocking)可能会引起大量的 后台 HTTP 请求产生,加载 Silverlight 或 Flash 可能会引发未被请求的许可模态框(permission modals)、或是颠簸(Thrashing) 用户 的磁盘。
ImmortalDB 是如何工作的
当您将键值对存储在 ImmortalDB 中时,该键和值会冗余地保存在浏览器的 cookie、IndexedDB、LocalStorage 和 SessionStorage 数据存储中。
当您通过键检索值时,ImmortalDB 会:
在每个数据存储中查找那个密钥;
计算每个唯一返回值;
将最常见的返回唯一值确定为“正确”值;
返回这个正确的值。
接着,ImmortalDB 会“自愈”:如果任何数据存储区返回的值与所确定的正确值不同,或是根本没有值,则将正确的值重写到该存储区。通过这样的方式,一致性、可靠性和冗余得到维持。
GitHub: https://github.com/gruns/ImmortalDB
网站描述: 用于浏览器的弹性键值存储 数据库
ImmortalDB官方网站
官方网站:
如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。