Chrome на Android: предоставленная квота для IndexedDB неожиданно почти 0 - PullRequest
0 голосов
/ 25 апреля 2018

Произошли ли недавно изменения в управлении квотами Android Chrome для IndexedDB? Я использую PouchDB с адаптером IndexedDB в приложении Ionic 3 Cordova. Все прошло довольно гладко за последние 6 месяцев. Но за последние 5 дней я получил значительное количество жалоб на некорректную загрузку данных в приложении. Мое приложение требует только 3-4 МБ данных. Вот что я знаю до сих пор:

  • Проблема возникает только в ситуациях с нехваткой места на диске во внутреннем хранилище (даже если приложение установлено на SD-карте)
  • У уязвимых устройств почти всегда есть только 16 ГБ внутреннего дискового пространства, и они кажутся постоянно заполненными
  • Освобождение дискового пространства решает проблему
  • Кажется, что есть резкое ограничение для квоты для IndexedDB, когда устройство работает ниже 150-250 МБ или около того. Если освобождаются дополнительные 100-200 МБ, выделенная квота неожиданно возрастает до 50 МБ или более
  • Похоже, что в Chrome или Android недавно произошли изменения, которые привели к возникновению этой проблемы, потому что мое приложение не получало обновления в последнее время и даже затрагивает новых пользователей только с несколькими КБ данных.

Я также подозревал, что, возможно, люди делали больше фотографий в последние дни, потому что погода была довольно хорошей, что приводило к уменьшению свободного места на диске и, таким образом, к увеличению числа зарегистрированных ошибок. Но я все равно нашел бы это странное объяснение.

Кто-нибудь еще заметил подобные проблемы в своих приложениях? Какие-нибудь решения кроме перехода на Cordova-SQLite?

Обновление 2018-05-03:

Я понял еще несколько вещей:

  • Для устройств почти всегда требуется больше 1 ГБ свободного внутреннего хранилища. 500 МБ больше не достаточно
  • Если вы планируете перейти на SQLite с PouchDB, прочитайте комментарии к этому вопросу. Могут быть проблемы с вложениями.
  • Если вы используете Ionic Storage (на основе LocalForage), он автоматически переключится на SQLite после установки плагина. В моем случае это привело к ошибкам в базе данных, и мне пришлось переключить drivers для хранилища Ionic: driverOrder: ['localstorage', 'indexeddb', 'sqlite', 'websql']

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Там действительно есть ошибка.Он был исправлен и объединен, но еще не выпущен (https://chromium.googlesource.com/chromium/src/+/73b18e372a83137f1198a350973225c4c145ceb6%5E%21/).

Для такой серьезной ошибки, как эта, ее следует исправить и выпустить почти сразу. Других бета-версий для мая и M67 не существует.выйдет 29 мая (https://www.chromium.org/developers/calendar).

0 голосов
/ 02 мая 2018

В трекере ошибок Chrome:

https://bugs.chromium.org/p/chromium/issues/detail?id=838816

...