Phonegap: WebSql или SqLite?

Я работаю с phonegap в течение короткого времени, и у меня возникли проблемы с концепцией хранения в нем.

Итак, в документации говорится, что есть эта база данных, которую вы можете открыть, и это реализация SQLite. "window.openDatabase возвращает новый объект базы данных.

Этот метод создаст новую базу данных SQL Lite и вернет объект базы данных. Используйте объект базы данных для манипулирования данными. docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database Сейчас я использую его в своем веб-приложении:

var myBuggedDb = window.openDatabase(shortName, version, displayName,maxSize);

Работает как часы. Я могу использовать его для выполнения запросов, от выбора до удаления. Все хорошо, верно? Но когда я проверяю и отлаживаю свой код, я вижу, что создается база данных WebSql. Я также консультировался со многими блогами, вики и другими местами, чтобы получить больше информации по этой теме. Видно, что многие люди портят обе технологии. На странице плагина Phonegap даже нет плагина sqlite.

А теперь мы собираемся изменить наше приложение, чтобы оно брало из localStorage объект JSON и преобразовывало его. Я хочу вставить его в нашу базу данных. Но теперь я в замешательстве, я не знаю, это webSql или SQLite. Может ли кто-нибудь прояснить? Будет ли он работать как SQLite или как WebSql на устройстве?

РЕДАКТИРОВАТЬ: Если вы ищете этот вопрос в будущем, действуйте осторожно: технологии сильно изменились, поддержка indexedDB растет, есть много других вариантов, таких как Lawchair и тому подобное. Проведите небольшое исследование, прежде чем использовать что-либо!


person Malavos    schedule 21.11.2013    source источник


Ответы (3)


HTML 5 имеет эту реализацию баз данных, и реализация выполняется путем встраивания базы данных Sql Lite в браузер.

В браузерах, таких как Chrome и Safari, реализованы базы данных Html5, реализованные с использованием sqlLite, называемого websql, но когда я связался, Mozilla не реализовывала Websql, а внедряла индексированную БД.

Я думаю, что лучшим вариантом является использование Backbone.js или Lawnchair, хотя внутренне оба они используют websql, но API обертывает все за вас.

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

person varun    schedule 21.11.2013
comment
Да, это помогло многое прояснить. IndexedDB прямо сейчас для нас не вариант из-за совместимости с мобильными устройствами. Но я проверяю Lawnchair. Спасибо, Варун! - person Malavos; 21.11.2013

Я бы предложил пойти с WebSQL. Подробная причина приведена ниже:

Давайте продолжим и рассмотрим 3 основные платформы, на которых вы будете использовать PhoneGap:

  • IOS: WebSQLПОДДЕРЖИВАЕТСЯ SQLiteЧАСТИЧНО ПОДДЕРЖИВАЕТСЯ
  • Android: WebSQLПОДДЕРЖИВАЕТСЯ SQLiteПОЛНОСТЬЮ ПОДДЕРЖИВАЕТСЯ
  • Windows: WebSQLНЕ ПОДДЕРЖИВАЕТСЯ SQLiteНЕ ПОДДЕРЖИВАЕТСЯ

В идеале все выглядит так: у вас есть Windows, над которой вы размещаете подключаемый модуль WebSQL [ненадежный], над которым вы размещаете подключаемый модуль SQLite [крайне ненадежный].

Следовательно - теперь это ваш звонок. Даже если вы создаете приложения для телефонной связи, они должны быть быстрыми, а создание слоев одного стека поверх другого определенно замедлит его работу.

person Ankit Tanna    schedule 25.05.2015
comment
WebSQL устарел. programmers.stackexchange.com/questions/ 220254/ - person Umut Ozel; 29.06.2015

var myBuggedDb = window.openDatabase (короткое имя, версия, отображаемое имя, максимальный размер); открывает базу данных websql. Если вы хотите использовать Sqlite, вы должны использовать сторонние плагины, такие как https://github.com/litehelpers/Cordova-sqlite-storage

person Krunal    schedule 08.09.2015