清理IndexedDB对象库

时间:2013-12-15 07:37:32

标签: indexeddb

我正在我的webapp(仅限Chrome)中实现IndexedDB存储的使用,它存储了一系列记录

{raw:"string",id:"string",dayUsed:number}

,其中

  1. id - 标识对象的唯一字符串(用作indexedDB objectstore键
  2. dayUsed - 记录使用该对象的最后一天(自Date(2013,11,10)起)。
  3. 使用该应用时,此商店中的记录数量将会增加。我想密切关注此对象库中发生的事情,以便在

    时修剪它
    1. 商店中的记录数量超出预设阈值
    2. 商店中有dayUsed值超过预设阈值的记录
    3. 我已经按照MDN教程(其中b.t.w有一些小的错误信息)并实现了我需要的大部分内容,但记录修剪位仍然不清楚。

      IndexedDB提供的核心方法非常有限。例如,即使获得记录总数也不仅仅是发行一行内容。在应用程序运行的同时,我可以不时运行整个对象存储的清理例程,并使用dayUsed breahces删除条目。但是,鉴于我的objectstore可能有几百个条目,这可能是一个漫长的操作,会减慢应用程序的速度。那么在哪里?产生一个网络工作者来完成这项工作?

      这开始看起来比我想象的要复杂得多。我的问题 - 是否有高级包装器为IndexedDB存储提供类似SQL的接口,可以很好地处理所有这些任务?

3 个答案:

答案 0 :(得分:1)

www.dexie.org

Minimalistic indexedDB库。

答案 1 :(得分:0)

查看我的资料库https://bitbucket.org/ytkyaw/ydn-db/wiki/Home

诀窍在于你只需使用钥匙来计算日常使用情况,而不是存储任何东西。

答案 2 :(得分:0)

看看这个jQuery插件 - jQuery Plugin for indexedDB它为您提供了objectStore.count()和objectStore.clear()等基本功能。以下是文档链接 - Docs