Android上的Chrome:IndexedDB的授权配额突然几乎为0

nta*_*aso 8 android google-chrome indexeddb cordova pouchdb

最近Android Chrome的IndexedDB配额管理有变化吗?我在Ionic 3 Cordova应用程序中使用带有适配器IndexedDB的PouchDB.在过去的6个月里,它进展顺利.但是在过去的5天内,我收到的关于数据未在应用中正确加载的投诉显着增加.我的应用只需要3-4 MB的数据.这是我目前所知道的:

  • 问题仅发生在内部存储器上磁盘空间不足的情况下(即使应用程序安装在SD卡上)
  • 受影响的设备几乎总是只有16GB的内部磁盘空间,并且似乎一直都是满的
  • 释放磁盘空间可以解决问题
  • 当设备运行低于150-250MB左右时,IndexedDB 的授权配额似乎有一个明显的截止.如果释放额外的100-200MB,则授予的配额突然跳升到50MB或更多
  • 最近Chrome或Android出现了这个问题,因为我的应用最近没有收到更新,甚至影响了只有几KB数据的新用户.

我还怀疑也许人们在最后几天拍摄了更多的照片,因为天气非常好,导致可用磁盘空间减少,因此报告的错误数量激增.但我仍然觉得这是一个奇怪的解释.

其他人在他们的应用中发现了类似的问题 除了切换到Cordova-SQLite之外的任何解决方案?

更新2018-05-03:

我想了几件事:

  • 设备几乎总是需要1 GB以上的免费内部存储空间.500MB已经不够用了
  • 如果您计划使用PouchDB迁移到SQLite,请阅读此问题的注释.附件可能存在问题.
  • 如果您正在使用Ionic Storage(基于LocalForage),它将在您安装插件后自动切换到SQLite.在我的情况下,这导致数据库错误,我不得不切换drivers为Ionic的存储:driverOrder: ['localstorage', 'indexeddb', 'sqlite', 'websql']

小智 2

确实有一个bug。它已修复并合并,但尚未发布(https://chromium.googlesource.com/chromium/src/+/73b18e372a83137f1198a350973225c4c145ceb6%5E%21/)。

对于像这样的严重错误,应该立即修复并发布。5 月没有其他测试版本,M67 将于 5 月 29 日发布 ( https://www.chromium.org/developers/calendar )。