Chrome Android:IndexedDB 的授予配额突然几乎为 0
Chrome on Android: Granted Quota for IndexedDB suddenly almost 0
Android Chrome IndexedDB 的配额管理最近有变化吗?我在 Ionic 3 Cordova 应用程序中使用带有适配器 IndexedDB 的 PouchDB。在过去的 6 个月里一切都很顺利。但在过去 5 天内,我收到的关于数据未在应用程序中正确加载的投诉显着增加。我的应用程序只需要 3-4 MB 的数据。这是我目前所知道的:
- 只有在内部存储磁盘space不足的情况下才会出现问题(即使应用程序安装在 SD 卡上)
- 受影响的设备几乎总是只有 16GB 的内部磁盘space,而且似乎一直都是满的
- 释放磁盘 space 解决了问题
- 当设备运行在 150-250MB 左右时,IndexedDB 的 授予配额 似乎有一个明显的截止点。如果额外释放 100-200MB,授予的配额突然跃升至 50MB 或更多
- 似乎最近对 Chrome 或 Android 的更改导致了这个问题,因为我的应用最近没有收到更新,它甚至会影响只有一个几 KB 的数据。
我还怀疑可能是最近几天人们拍了更多照片,因为天气很好,导致可用磁盘较少 space,因此报告错误的次数激增。但我仍然觉得这是一个奇怪的解释。
还有其他人在他们的应用中注意到类似的问题吗?除了切换到 Cordova-SQLite 之外还有什么解决方案吗?
2018-05-03 更新:
我又想到了一些事情:
- 设备几乎总是需要 1 GB 以上的免费内部存储空间。 500MB 已经不够了
- 如果您打算使用 PouchDB 迁移到 SQLite,请阅读此问题的评论。附件可能有问题。
- 如果您使用的是 Ionic Storage(基于 LocalForage),它会在您安装插件后自动切换到 SQLite。在我的例子中,这导致了数据库错误,我不得不为 Ionic 的存储切换
drivers
:driverOrder: ['localstorage', 'indexeddb', 'sqlite', 'websql']
在 Chrome 错误跟踪器中为:
https://bugs.chromium.org/p/chromium/issues/detail?id=838816
确实有bug。它已修复并合并,但尚未发布 (https://chromium.googlesource.com/chromium/src/+/73b18e372a83137f1198a350973225c4c145ceb6%5E%21/)。
对于像这样的严重错误,应该立即修复并发布。 5 月没有其他测试版,M67 将于 5 月 29 日发布 (https://www.chromium.org/developers/calendar)。
Android Chrome IndexedDB 的配额管理最近有变化吗?我在 Ionic 3 Cordova 应用程序中使用带有适配器 IndexedDB 的 PouchDB。在过去的 6 个月里一切都很顺利。但在过去 5 天内,我收到的关于数据未在应用程序中正确加载的投诉显着增加。我的应用程序只需要 3-4 MB 的数据。这是我目前所知道的:
- 只有在内部存储磁盘space不足的情况下才会出现问题(即使应用程序安装在 SD 卡上)
- 受影响的设备几乎总是只有 16GB 的内部磁盘space,而且似乎一直都是满的
- 释放磁盘 space 解决了问题
- 当设备运行在 150-250MB 左右时,IndexedDB 的 授予配额 似乎有一个明显的截止点。如果额外释放 100-200MB,授予的配额突然跃升至 50MB 或更多
- 似乎最近对 Chrome 或 Android 的更改导致了这个问题,因为我的应用最近没有收到更新,它甚至会影响只有一个几 KB 的数据。
我还怀疑可能是最近几天人们拍了更多照片,因为天气很好,导致可用磁盘较少 space,因此报告错误的次数激增。但我仍然觉得这是一个奇怪的解释。
还有其他人在他们的应用中注意到类似的问题吗?除了切换到 Cordova-SQLite 之外还有什么解决方案吗?
2018-05-03 更新:
我又想到了一些事情:
- 设备几乎总是需要 1 GB 以上的免费内部存储空间。 500MB 已经不够了
- 如果您打算使用 PouchDB 迁移到 SQLite,请阅读此问题的评论。附件可能有问题。
- 如果您使用的是 Ionic Storage(基于 LocalForage),它会在您安装插件后自动切换到 SQLite。在我的例子中,这导致了数据库错误,我不得不为 Ionic 的存储切换
drivers
:driverOrder: ['localstorage', 'indexeddb', 'sqlite', 'websql']
在 Chrome 错误跟踪器中为:
https://bugs.chromium.org/p/chromium/issues/detail?id=838816
确实有bug。它已修复并合并,但尚未发布 (https://chromium.googlesource.com/chromium/src/+/73b18e372a83137f1198a350973225c4c145ceb6%5E%21/)。
对于像这样的严重错误,应该立即修复并发布。 5 月没有其他测试版,M67 将于 5 月 29 日发布 (https://www.chromium.org/developers/calendar)。