Сбой индексации PouchDB / SQLite - требуется много памяти на IOS

вступление

У меня есть приложение для IOS с PouchDB, Ionic и Cordova, но теперь я терплю неудачу с базой данных и не вижу решения...

SQLite

плагин Sqlite, и синхронизация работает отлично, но как только я хочу получить доступ к данным, запускается PouchDB индексация, которая использует много памяти, и мое приложение вылетает. Вот пример приложения со всем, что подготовлено для заинтересованных помощников, чтобы воспроизвести сбой SampleApp Github

WebSQL

В WebSQL я даже не могу синхронизировать базу данных, потому что получаю ошибку «QuotaExceededError». Есть ли способ запросить больше места в uiwebview IOS?

ИндекседБД

Indexedb не используется из-за слишком большого количества ошибок. И в IOS 9 тоже лучше не будет

Итак, любые идеи идеи или намеки?


person mnewmedia    schedule 25.06.2015    source источник


Ответы (2)


Решение проблемы ограничения хранилища на iOS действительно заключается в использовании плагина SQLite. Вы не можете превышать 50 МБ на WebSQL.

Плагин Sqlite и синхронизация работают отлично, но как только я хочу получить доступ к данным, PouchDB начинает индексацию, которая использует много памяти, и мое приложение вылетает.

Вы уверены, что это ошибка PouchDB, а не плагина SQLite? Если это сбой в мире Objective-C, это связано с плагином SQLite. Если это сбой в стране JavaScript, он, вероятно, принадлежит PouchDB.

В любом случае, если вы можете предоставить тест для воспроизведения, мы будем рады сообщить об ошибке либо на странице проблем PouchDB Github, либо на странице проблем плагина SQLite. :)

person nlawson    schedule 26.06.2015
comment
Вот что я думал о WebSQL. Нет, я больше склоняюсь к ошибке в SQLite. Я постараюсь предоставить образец, где это не удается завтра. Действительно очень грустные вещи с этими db на ios. Разве нельзя сбросить уже проиндексированную базу данных sqlite и загрузить ее позже, аналогично вашему плагину pouchdb-load? - person mnewmedia; 29.06.2015
comment
пример приложения со всем подготовленным и объясненным github.com/mnewmedia/testApp - person mnewmedia; 06.07.2015

Что касается WebSQL, обратите внимание на следующее: лимиты PouchDB

В некоторых версиях Safari есть ошибка, из-за которой вы можете запросить дополнительное пространство только один раз, поэтому вам нужно будет запросить желаемое пространство заранее. PouchDB позволяет вам сделать это с помощью параметра размера.

Попробуйте выделить размер заранее и выделите свои самые большие ожидания от приложения. Надеюсь, это поможет.

Удачи.

person Angel Paraskov    schedule 26.06.2015