【发布时间】:2021-01-29 04:31:55
【问题描述】:
我正在编写一个应用程序,它会在每次重新加载时刷新 indexedDB 存储并在数据库上生成一组新的键值对。由于我在编写新的键值对之前使用了 objectStore.clear(),因此键值每次都会递增。
- 我能达到的最大值是多少?
- 有没有办法将它重新设置为从 1 开始?
我知道删除对象存储是解决此问题的一种方法,但应用程序是一个时间敏感的操作,删除需要一些时间才能完成。
【问题讨论】:
我正在编写一个应用程序,它会在每次重新加载时刷新 indexedDB 存储并在数据库上生成一组新的键值对。由于我在编写新的键值对之前使用了 objectStore.clear(),因此键值每次都会递增。
我知道删除对象存储是解决此问题的一种方法,但应用程序是一个时间敏感的操作,删除需要一些时间才能完成。
【问题讨论】:
对此的规范位于:https://w3c.github.io/IndexedDB/#key-generator-construct。最大值为 2^53 (9007199254740992)。正如规范所述:
只要以正常方式使用密钥生成器,此限制就不会成为问题。如果您每天每晚生成 1000 次新密钥,那么您在 285000 年内都不会遇到此限制。
无法重置对象存储的密钥生成器。
【讨论】: