Какая база данных использует 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