Какая база данных использует PhoneGap и каков размер ограничения?
Я написал базу данных HTML5, которая абстрагирует localStorage, indexedDB и WebSQL. Используя прямые HTML5, мои параметры базы данных выглядят следующим образом:
- IE10 - indexedDB - 1GB max
- FireFox - indexedDB - неограниченное
- Safari - WebSQL - максимум 50 МБ
- Chrome - IndexedDB (или Web SQL) - неограниченно (с API-интерфейсом квоты HTML5 ref1, ref2)
- Opera - WebSQL (пока не переключится на webkit?) - неограниченно
Я хотел бы увеличить максимальный размер базы данных с помощью PhoneGap или Quota API. Из документации PhoneGap это выглядит как текущая Экономная база данных PhoneGap:
- WebSQL - Android, Blackberry, iPhone и webOS
- localStorage - Windows Phone 7
- indexedDB - Windows Phone 8 и, я думаю, везде индексируетсяDB, но WebSQL не работает.
Также есть плагины PhoneGap SqlLite. iOS, Android, Windows Phone 8+
ВОПРОС 1. Является ли мое понимание того, какая база данных PhoneGap будет использовать точный?
ВОПРОС 2. Есть ли твердая документация о том, сколько данных хранится в базе данных PhoneGap определенного типа? * Если это база данных PhoneGap, а не реализация базы данных браузеров.
ВОПРОС 3. У PhoneGap есть планы придерживаться стандартов веб-хранения, тем самым отбросив WebSQL в пользу индексированного DB? Если да, смогу ли я использовать мой существующий код WebSQL (через встроенный PhoneGap- polyfill) после того, как будет сделан переход к индексированномуDB?
ВОПРОС 4. В ситуациях, когда размер базы данных ограничен и не может быть расширена с помощью либо PhoneGap, либо Quota API, но доступен доступ к файловой системе, разумно ли предположить, что " данные могут храниться в файловой системе устройства или на SD-карте?
Ответы
Ответ 1
Насколько я понимаю, какая база данных PhoneGap будет использовать точные данные?
Да, это так. PhoneGap может использовать базы данных LocalStorage, SessionStorage или SQLite. Вы также можете использовать PhoneGap для подключения к родным классам устройств через плагин и передать данные собственного класса, которые он будет хранить на устройстве.
Есть ли твердая документация о том, сколько данных хранится в базе данных PhoneGap определенного типа? Если это база данных PhoneGap, а не реализация базы данных браузеров.
- LocalStorage:: 10MB
- SessionStorage:: 10MB
- База данных SQLite:: 50MB-80MB (зависит от устройства)
- Собственная база данных с использованием подключаемого модуля:: Неограниченное количество данных
- IndexedDB:: 5MB. Все еще существует. Но очень плохо, theres список устройств/ОС, которые запускают его здесь
Есть ли у PhoneGap планы придерживаться стандартов Web Storage, тем самым отбрасывая WebSQL в пользу indexedDB? Если да, смогу ли я использовать мой существующий код WebSQL (через встроенный PhoneGap- polyfill) после того, как будет сделан переход к индексированномуDB?
WebSQL медленно устаревает. Его замена - IndexedDB или SQLite. Однако лучшим вариантом для вас является SQLite или базовая база данных (например, Core Data на iOS).
В ситуациях, когда размер базы данных ограничен и не может быть расширена с помощью либо PhoneGap, либо Quota API, но доступен доступ к файловой системе, разумно ли предположить, что "дополнительные" данные могут быть сохранены в файловой системе устройства или на SD-карте?
Это определенно возможно.
- В Android вы можете указать местоположение базы данных и, следовательно, вывести данные во внешнюю базу данных.
- В iOS вы можете использовать вызов собственной базы данных для хранения данных в CoreData, нет внешней памяти.
- Во всех случаях для всех ОС вы можете создать плоский файл базы данных, например текстовый файл, сохранить свои данные в списках ключевых значений и затем перенести их в свое приложение при первом запуске. Остерегайтесь управления памятью в этом случае.
Я добавил объяснение, как перейти к кодированию баз данных SQLite и LocalStorage в моем ответе.
Ответ 2
Мне удалось запустить тест на планшете Android 4.0.4. Он использует WebSQL (старая версия WebSQL, которая даже не поддерживает db.changeVersion), и это позволило мне заполнить весь жесткий диск (12 ГБ с моей базой данных). Я не знаю о других устройствах или о том, как работают SD-карты.
![enter image description here]()
Ответ 3
IndexedDB -
- Это несовместимо со многими типами мобильных ОС и версий
- Он совместим только с очень конкретными версиями мобильной ОС
- Разработчики не могут использовать SQL с IndexedDB. Операторы SQL могут использоваться в SQLite и WebSQL
- Большинство разработчиков активно избегают использования IndexedDB столько, сколько они могут
WebSQL -
- Он устарел от W3C, что означает, что он больше не поддерживается или не развивается
- Для этого требуется еще один плагин под названием Polyfill, чтобы мобильные приложения могли работать с популярными мобильными ОС, такими как Google Android и Apple iOS
SQLite -
- Он получил награду от Google
- SQLite имеет официальный сайт. IndexedDB и WebSQL не
- В Google SQLite возвращает 1,8 миллиона результатов. WebSQL возвращает бит менее 700 тыс. Результатов, а IndexedDB возвращает результаты 282 К.
- Разработчик может использовать общие SQL-запросы с SQLite.
Если вам нужен быстрый учебник по SQLite
Хранение базы данных SQLite с помощью Android и Phonegap