很简单的问题,但我一直没能找到答案。
如何重置IndexedDB中的对象存储,以便自动增量键再次从0(或1)开始?
我目前使用IDBWrapper,但如果更容易的话,可以使用另一个库。我使用的是内联键。
从此处开始:http://jensarps.de/2011/11/25/working-with-idbwrapper-part-1
如果你需要清除所有存储的条目,你可以使用clear方法。注意,这不会重置Chrome的autoIncrement计数器。
如果我手动清除Chrome Developer工具中的对象存储,这不会将密钥重置为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),但这真的有必要吗?
3条答案
按热度按时间41zrol4v1#
如果不删除并重新创建对象存储,则无法重置生成器。
如www.example.com中所述https://w3c.github.io/IndexedDB/#key-generator-construct,生成的最大密钥为9007199254740992,并且:
如果你不分昼夜每秒生成一个新的密钥1000次,你在285000年内都不会遇到这个限制。
lf5gs5x22#
根据规范,生成键值可以是任何值,具体取决于浏览器实现您代码不应依赖于它
xnifntxz3#
如果不删除并重新创建对象存储,则无法重置生成器。https://github.com/Tesfaye-Eshetie/reusable-comment-component/blob/store-comments-IndexedDB/js/idb/indexedDB.js