9

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

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

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

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

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

如果我在 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),但这真的有必要吗?

4

2 回答 2

5

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

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

如果您每天每晚生成 1000 次新密钥,那么您在 285000 年内都不会遇到此限制。

于 2016-06-23T15:54:50.983 回答
1

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

于 2013-09-07T01:03:12.480 回答