IndexedDB:如何将自动增量密钥重新设定种子/重置为 0(或 1)



简单的问题,但我无法找到答案。

如何在 IndexedDB 中重置对象存储,以便自动增量键再次从 0(或 1)开始?

我目前正在使用 IDBWrapper,但如果更容易,可以使用替代库。我正在使用内联键。

从这里: http://jensarps.de/2011/11/25/working-with-idbwrapper-part-1

如果需要从所有存储条目中清除存储,可以使用 清晰的方法。请注意,这不会重置Chrome的自动增量 计数器。

如果我在 Chrome 开发人员工具中手动清除对象存储,这不会将密钥重置为 0(或 1)。

我确实发现了这个被拒绝的错误:https://bugzilla.mozilla.org/show_bug.cgi?id=635551,从那里开始,这个密钥生成的大纲:http://www.w3.org/TR/2012/WD-IndexedDB-20120524/#key-generator-concept

大概我可以编写自己的逻辑来记住上次清除存储的时间,然后更改插入记录的代码以手动将键覆盖为 0(或 1),但这真的有必要吗?

如果不删除并重新创建对象存储,则无法重置生成器。

如 https://w3c.github.io/IndexedDB/#key-generator-construct 中所述,生成的最大密钥为 9007199254740992 并且:

如果您日夜每秒生成新密钥 1000 次,则 超过285000年都不会遇到这个限制。

根据规范,生成的键值可以是任何内容,具体取决于浏览器实现。 你的代码不应该依赖它。

如果不删除并重新创建对象存储,则无法重置生成器。https://github.com/Tesfaye-Eshetie/reusable-comment-component/blob/store-comments-IndexedDB/js/idb/indexedDB.js

最新更新