phonegap - sqlite или индексированная БД?

Я веб-разработчик, начинающий с телефонного разговора. Мне нужно создать одно приложение для iPhone, Android и Windows Phone 8.
Мне нужно хранить некоторые данные (слишком большие для localStorage) локально.
Я не знаю, что ведьма лучшее решение:

  1. Phonegap предоставляет хранилище (на основе WebSQL - который устарел), но он не поддерживается Windows Phone. Есть ли какой-нибудь плагин, чтобы восполнить этот пробел?
  2. Я читал об индексированной БД, но раньше не использовал ее, и она мне не очень понятна. Я не уверен, что он полностью поддерживается на всех платформах? Я основан на (http://blog.nparashuram.com/2012/10/indexeddb-example-on-cordova-phonegap_12.html)
  3. Или, может быть, я могу использовать плагины телефонной связи https://github.com/marcucio/Cordova-WP-SqlitePlugin для Windows Phone и https://github.com/marcucio/Cordova-SQLitePlugin%20for%20android%20and%20iphone.. Тогда мой код будет одинаковым на всех платформах, как я полагаю.

Кто-нибудь раньше создавал такое приложение? Буду рад любым решениям или идеям.


person Iwona Trąbka    schedule 31.01.2013    source источник


Ответы (5)


Cordova WP8 поддерживает только IndexedDB. Только для iOS и Android WebSql. Поскольку WebSql устарел (я знаю, сколько людей его любят / используют и согласны с тем, что во многих ситуациях WebSql очень хорош), я бы рекомендовал продолжить работу с IndexedDb и использовать следующий полифилл для Android / iOS.

Полифилл PhoneGap для IndexedDB, который заставляет IndexedDB API работать с WebSQL

Пример

person Sergei Grebnov    schedule 31.01.2013
comment
Я видел этот пример, но не уверен в таком решении. Что с этим Cordova-WP-SqlitePlugin? Это работает? - person Iwona Trąbka; 31.01.2013
comment
Я никогда не пробовал Cordova-WP-SqlitePlugin, поэтому не знаю, насколько он стабилен / хорош. - person Sergei Grebnov; 31.01.2013
comment
Используя Cordova-WP-SqlitePlugin, он не очень стабилен. Целая куча ошибок, всегда показывает SQLite как занятый. Не рекомендуется. - person shamittomar; 08.02.2013

Последнее обновление (5 мая 2014 г.): Новый кроссплатформенный плагин Cordova WebSQL от MS Open Tech

Microsoft Open Technologies is publishing the new open source подключаемый модуль WebSQL for Apache Cordova and PhoneGap. This plugin allows developers to integrate a persistent SQL-based local storage solution in their Cordova apps using the exact same JavaScript code across Android, iOS, Windows Phone and Windows Store.

person Vinayak Bevinakatti    schedule 18.06.2014

IndexedDB -

  • Несовместима со многими типами популярных мобильных ОС и версий.
  • Он совместим только с очень специфическими версиями мобильной ОС.
  • Разработчики не могут использовать SQL с IndexedDB. Операторы SQL можно использовать в SQLite и WebSQL
  • Большинство разработчиков активно избегают использования IndexedDB, насколько это возможно.

WebSQL -

  • W3C устарел, что означает, что он больше не поддерживается и не разрабатывается.
  • Требуется еще один плагин, чтобы мобильные приложения могли работать с популярными мобильными ОС, такими как Google Android и Apple iOS.

SQLite -

  • Получил награду от Google
  • У SQLite есть официальный сайт. IndexedDB и WebSQL не
  • В Google SQLite возвращает 1,8 миллиона результатов. WebSQL возвращает немногим меньше 700K результатов, а IndexedDB возвращает 282K результатов.
  • Разработчик может использовать общие операторы SQL с SQLite
  • Он совместим с большинством версий всех популярных мобильных ОС, таких как iOS и Android.

Если вам нужен быстрый учебник по SQLite

Хранение базы данных SQLite с использованием Android и Phonegap

person KershawRocks    schedule 14.09.2014
comment
Во-первых, и indexedDB, и WebSQL имеют официальные веб-страницы в рамках усилий по разработке стандартов w3c. SQLite не является открытым стандартом. Во-вторых, вы считаете, что разработчики активно избегают indexedDB. Мой опыт другой. В-третьих, нет плагина под названием Polyfill - в веб-разработке polyfill - это библиотека, которая проверяет, что реализовано в текущем браузере, и предоставляет повторные реализации для того, чего не хватает. Да, существует приличный полифилл для indexedDB (проверьте github), который делает API доступным повсюду. - person Jon Watte; 17.09.2014
comment
@JonWatte И это нормально. Не существует идеального решения для всех ситуаций. Спорить в Интернете - все равно что пытаться стать лучшим на Специальной Олимпиаде. Вы можете рассказать мне больше, как для меня, так и для всех, кто будет выбирать технологию хранения. В чем преимущества использования IndexedDB перед WebSQL или SQLite? - person KershawRocks; 17.09.2014
comment
Между прочим, первый результат после ввода полифилла в Google говорит о том, что это плагин, а запись в Википедии на Polypill определяет его как загружаемый код, который предоставляет возможности, которые не встроены в веб-браузер, а это именно то, чем является плагин. , и что обычно делает плагин. Возможно, он установлен иначе, чем другие распространенные плагины, но это именно то, что плагин делает. - person KershawRocks; 17.09.2014
comment
На оригинальном плакате написано, что существует плагин под названием Polyfill. Polyfill - это не название плагина - существует множество плагинов (и библиотек), которые обеспечивают функциональность полифилла. Сказать, что вам нужен еще один плагин под названием Polyfill, - все равно что сказать, что вам нужна еще одна ветка, когда вы ищете синюю мужскую рубашку. - person Jon Watte; 18.09.2014

LocalForage кажется лучшим и новейшим решением: https://github.com/localForage/localForage (1000 коммитов, 83 участника)

У него есть резервные варианты для неподдерживаемых навигаторов. Я еще не пробовал (по телефонному разговору), но как только сделаю это, я дам вам отзыв;)

person gtamborero    schedule 08.05.2015
comment
localForage поддерживается Mozilla, что является огромным плюсом. Однако им осталось рассмотреть несколько крайних случаев, и в то же время, что API проще, он также и самый плохой. - person gustavohenke; 17.08.2015

Как насчет использования моей библиотеки с открытым исходным кодом ydn-db? Поверх них есть очень красивый слой абстракции.

Редактировать:

person Kyaw Tun    schedule 14.08.2013
comment
Хм, не могли бы вы упростить нам задачу и дать ссылку? - person B T; 27.08.2013