我正在编写一个诊断应用程序,每隔三秒就会将数据写入IndexedDB。数据大小是固定的,并且会自动删除超过一周的数据,从而产生最大201600条目。这使得计算IndexedDB空间要求变得相当简单和精确。我希望在网站启动时在IndexedDB中保留空间,因为最终用户可能会在很长一段时间内无人看管浏览器。
简单的解决方案似乎是存储一个非常大的对象,该对象将提示用户接受空间要求。这需要存储然后删除非常大的对象,这需要大量的时间和处理能力。这还需要检查是否已经进行了此测试以确保它只运行一次。
有更好的解决方案吗?
答案 0 :(得分:1)
我认为没有一个很好的解决方案。即使你的解决方案也没有用。仅仅因为您曾经能够存储一定数量的数据并不意味着您将始终能够存储该数量的数据。配额不是常数。例如,在Chrome浏览器中roughly 10% of free hard drive space,这显然会随着时间的推移而改变。
如果可能,最好的解决方案是让您的应用程序优雅地处理超出配额的情况。因为无论您如何设计应用程序都会发生这种情况。