【问题标题】:Increased DB Size and delete function not working增加的数据库大小和删除功能不起作用
【发布时间】:2014-01-20 10:40:59
【问题描述】:

我是 javascript 新手,我正在使用 IndexedDB 将数据存储在客户端系统上。为了扩展速度和各种其他功能,我正在尝试将各种数据从图像存储到文档。每当我尝试存储任何类型的数据时,在本地系统中占用的空间都是实际文件大小的 4 倍。

比如说。 我使用循环存储 10 MB 图像文件 10 次。生成的 DB 大小为 400 MB 而不是 100 MB。当然,它与浏览器不同。如果我尝试将 1 MB 文档存储 100 次,则 DB 的大小为 472 MB 而不是 100 MB。

我面临的另一个问题是,每当我删除记录或清空 ObjectStore 时,都会触发 Onsuccess 事件。并且将来对已删除记录的任何引用都显示没有数据,但数据库占用的内存保持不变。 例如: 当我尝试将记录存储到总共 1 GB 时,数据库占用 4 GB,并且在删除操作结束时,IndexedDB 文件夹仍将大小显示为 4 GB。在 Chrome 中更糟糕的是,如果我尝试删除或读取数据,那么它会占用比现在更多的内存。请给我一个解决方案。

【问题讨论】:

标签: indexeddb filesize


【解决方案1】:

我删除了 onupgradeneeded 事件中的“createIndex”语句,并将 DB 大小减少到数据的实际大小。

我在问题中所述的删除操作也有效。唯一的问题是,删除 DB 或 Records 后,DB 占用的空间不会立即释放,而是稍后插入新记录时执行。

但是我仍然不知道为什么 createIndex 语句给我带来了这么多麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多