База данных SQLite на PhoneGap / iOS - возможно более 5 Мб - PullRequest
7 голосов
/ 24 января 2012

Я немного озадачен ограничениями использования SQLite в приложении Phonegap-Native-App на iOS.

Вы можете прочитать много сообщений о лимите 5 Мб памяти и о том, что ваш Ipad может попросить вас увеличить память.

Теперь мне удалось вставить около 7000 строк в мою базу данных SQLite, используя обычный Phonegap-Storage-API. Соответствующий db-файл имеет размер 26 МБ. Следующее выражение select "select * from" сработало и показывало содержимое базы данных. Я сделал это в симуляторе и на устройстве. Я не получил вопрос об увеличении памяти.

Как это может быть? Я что-то неправильно понимаю? Есть ли в Phonegap лимит 5 Мб для SQLite? Я использую PhoneGap 1.2 и iOS 5.

Ответы [ 3 ]

10 голосов
/ 13 марта 2012

Вы можете использовать собственную БД SQLite (такую ​​же, как WebSQL) с плагином phonegap, и у вас не будет никаких ограничений.В iOS5.1 WebSQL считается временными данными, которые могут быть удалены в любое время ... Этот плагин сохраняет базу данных в папке «Документ», это означает, что БД не удаляется и сохраняется в iCloud.

Вот плагин Native SQLite phonegap: https://github.com/davibe/Phonegap-SQLitePlugin В отношении этого плагина есть некоторые различия между API WebSQL, вот адаптер: https://gist.github.com/2009518

Вы также должны перенести старый файл базы данных WebSQL.(хранится в каталоге Library / WebKit или Caches) в папку «Документ».Вот код для этого: https://gist.github.com/2009491

И если данные важны, вы должны сохранить их на сервере.Я написал небольшую библиотеку для синхронизации SQlite DB с сервером: https://github.com/orbitaloop/WebSqlSync

3 голосов
/ 25 января 2012

Я узнал сам:

Успешно открыть первую транзакцию и одновременно вставить 7000 записей в эту единственную транзакцию.

Если я разделю вставки на отдельные транзакции, скажем, 500 записей на транзакцию, ограничение 5 МБ вступит в силу. PhoneGap ничего не говорит, просто не вставляет записи.

1 голос
/ 06 февраля 2013

Проблема с HTML5 Storage на устройствах, она не позволит вам увеличить размер. Посмотрите с этим решением:

Решено ограничение размера базы данных iOS в 5 МБ (с помощью плагина)

Надеюсь, это поможет вам.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...