Подтвердить что ты не робот

Различия между PouchDB и CouchBase Lite + LiteGap

В автономном/онлайн-проекте Phonegap:

  • В чем разница между использованием PouchDB и использованием CouchBase Lite с новым плагином LiteGap

  • Являются ли они двумя разными решениями для одной и той же проблемы?

  • Можно ли использовать API PouchDB для взаимодействия с локальной базой данных CouchBase Lite?

4b9b3361

Ответ 1

После некоторых исследований и относительно новой темы я подумал, что было бы интересно поделиться своим опытом, отвечая на мой собственный вопрос:

В чем разница между использованием PouchDB и использованием CouchBase Lite с новым плагином LiteGap?

PouchDB может создать локальную базу данных (websql или IndexedDB) на устройстве и воспроизвести ее с помощью внешнего CouchDB. Также может использоваться как клиент для внешнего CouchDB.

Couchbase Lite создает на устройстве базу данных iOS/Android, доступную по умолчанию на http://localhost:5984. Затем вы можете реплицировать локальную Couchbase Lite с помощью других внешних служб Couchbase/CouchDB. LiteGap позволяет создавать и использовать db Couchbase Lite в проекте PhoneGap.

Оба решения доступны для использования в проекте Phonegap.

Являются ли они двумя разными решениями для одной и той же проблемы?

Короче говоря, нет.

PouchDB является кросс-платформенным, поэтому вы можете использовать его в веб-проекте, а также в гибридном приложении. Также он предоставляет полезный API для непосредственного взаимодействия с локальным db или внешним CouchDB. Основываясь на технологиях websql/IndexedDB, у вас есть ограничения на хранение, которые требуют от пользователя разрешить больше локального пространства для хранения вашего веб-приложения.

Couchbase Lite - это родное решение для iOS/Android, которое устанавливает базу данных Couchbase на локальном устройстве устройства. Вместе с плагином LiteGap вы можете использовать его в проекте Phonegap.

Можно ли использовать API PouchDB для взаимодействия с локальной базой данных CouchBase Lite?

Да, но некоторые функции не работали, как ожидалось, в моих тестах.

Во-первых, у Couchbase Lite нет javascript HTTP API, поэтому я решил использовать Pouch для того, чтобы действовать так же, как клиент. PouchDB может использовать внешние сервисы Couch, поэтому мы настраиваем Pouch для использования устройства Couchbase Lite на localhost:5984.

Теперь с помощью Pouch вы можете create создать базу данных, put() или replicate от локального до облака. Тем не менее, я обнаружил, что проблемы реплицируются из облака в локальные, используя метод Pouch replicate.from. Одним из способов решения этой проблемы является установка двухсторонней репликации с использованием старого старого $.ajax для отправки на устройство http://localhost:5984/_replicate, как если бы вы использовали node curl (передача данных объекта с помощью source, target, continous и т.д.).

Я надеюсь, что это поможет кому-то принять решения о том, какие технологии используются при создании автономного/интерактивного гибридного приложения.

Ответ 2

Просто хочу сообщить, что я написал обширный обзор производительности , в котором показаны различия между CouchDB и Couchbase Lite.

Некоторые выводы:

  • PouchDB выигрывает, когда "добавление объемных документов" и "получение документа по идентификатору"
  • Couchbase Lite выигрывает, когда "получает все документы"
  • они рисуют, когда "запрашивает документ через представление" (PouchDB быстрее, но Couchbase Lite имеет кеширование)

Ответ 3

В дополнение к двум другим ответам здесь является примером приложения с сайта блога Couchbase.com, о том, как создать приложение списка задач с pouchDB и синхронизировать его с CouchBase Mobile.

Еще одна ссылка в блоге разработчиков Blackberry