当前位置: 首页 > 软件库 > 服务器软件 > 存储系统 >

ImmortalDB

用于浏览器的弹性键值存储
授权协议 MIT
开发语言 JavaScript HTML/CSS
所属分类 服务器软件、 存储系统
软件类型 开源软件
地区 不详
投 递 者 彭宏阔
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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


ImmortalDB 是在浏览器中存储持久键值数据的最佳方法,保存在其中的数据被冗余地存储在 CookiesIndexedDBLocalStorageSessionStorage。如果其中的任何数据被删除或损坏,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 会“自愈”:如果任何数据存储区返回的值与所确定的正确值不同,或是根本没有值,则将正确的值重写到该存储区。通过这样的方式,一致性、可靠性和冗余得到维持。

 相关资料
  • 问题内容: 有谁知道如何编写一个servlet过滤器,该过滤器将在给定文件/内容类型的响应上设置缓存头?我有一个提供大量图像的应用程序,我想通过让浏览器缓存那些不经常更改的图像来减少托管它的带宽。理想情况下,我希望能够指定一种内容类型,并在内容类型匹配时让它设置适当的标题。 有人知道该怎么做吗?或者,甚至更好的是,他们愿意共享示例代码吗?谢谢! 问题答案: 在您的过滤器中有以下行: 响应包装如下所

  • 推荐: http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html 304 Not Modified

  • 问题内容: 我想通过拦截文档对象(而不是accesskey属性)的keypress事件处理程序,来为Web应用程序中的几个页面添加对键盘快捷键的支持。 问题是,每个浏览器都有自己的组合键,因此不可能拿出一套键盘组合可在所有网络浏览器的工作,但一致的。(例如,它会是愚蠢的,如果在保存快捷为++ ,而一个要删除的是+ 。) 因此,我认为在我的几个页面中完全覆盖浏览器快捷方式会更简单。 撇开所有不利因素

  • 问题内容: 我正在尝试将Angular.js客户端与Google Appengine上的webapp2一起使用。 为了解决SEO问题,该想法是使用无头浏览器运行javascript服务器端并将生成的html提供给搜寻器。 是否有在Google App Engine上运行的python无头浏览器? 问题答案: 现在,可以使用自定义运行时在App Engine Flex上完成此操作,因此我要添加此答案

  • 我为google speed insight工作,它要求利用浏览器缓存 我已经添加了代码。htaccess如下所示 js文件没有生效,我的js文件内容类型是应用程序/javascript,因为我通过检查检查了这些。 我的代码有什么问题?我也试过了 但它并没有得到任何改进,而且文件中也并没有添加过期日期。 有人能帮忙吗?

  • 问题内容: 我们正在针对现有代码库运行Selenium回归测试,并且Web应用程序中的某些屏幕使用弹出窗口作为中间步骤。 当前,我们在测试中使用以下命令: … 大多数情况下都可以使用 。偶尔测试将失败在与线 谁能建议一种更好,更 可靠的 方法? 另外,我们主要在IE6和7上运行这些测试。 问题答案: 有用!!只是为了让那些喜欢硒的人们更容易。 这对我使用IE7(正常模式)有效。 真是个令人毛骨悚然