cordova - example - Diferencias entre PouchDB y CouchBase Lite+LiteGap
pouchdb server (3)
Después de algunas investigaciones y de ser un tema relativamente nuevo, pensé que sería interesante compartir mis experiencias respondiendo mi propia pregunta:
¿Cuál es la diferencia entre usar PouchDB y usar CouchBase Lite con el nuevo plugin LiteGap?
PouchDB puede crear una base de datos local ( websql
o IndexedDB
) en el dispositivo y replicarlo con un CouchDB externo. También se puede usar como un cliente para un CouchDB externo.
Couchbase Lite crea una base de datos iOS / Android en el dispositivo, accesible de forma predeterminada en http://localhost:5984
. A continuación, puede replicar el Couchbase Lite local con otros servicios CouchDB / CouchDB externos. LiteGap le permite crear y usar un db Couchbase Lite en un proyecto PhoneGap.
Ambas soluciones están disponibles para usar en un proyecto de Phonegap.
¿Son dos soluciones diferentes para el mismo problema?
En resumen, no.
PouchDB es multiplataforma para que pueda usarlo en un proyecto web y también en una aplicación híbrida. También proporciona una API útil para interactuar directamente con un db local o un CouchDB externo. Al estar basado en las tecnologías websql / IndexedDB, tiene limitaciones de almacenamiento que le piden al usuario que permita más espacio de almacenamiento local para su web / aplicación.
Couchbase Lite es una solución nativa iOS / Android que establece una base de datos Couchbase en el dispositivo localhost. Junto con el complemento LiteGap, puede usarlo en un proyecto de Phonegap.
¿Se puede usar la API de PouchDB para interactuar con una base de datos local de CouchBase Lite?
Sí, pero algunas funciones no funcionaban como esperaba en mis pruebas.
Primero, Couchbase Lite no tiene HTTP API
JavaScript, así que pensé usar Pouch para actuar solo como cliente. PouchDB puede usar servicios externos de Couch, por lo que configuramos Pouch para usar el dispositivo Couchbase Lite en localhost:5984
.
Ahora, con Pouch puede create
una base de datos, put()
o replicate
de local a la nube. Sin embargo, encontré problemas para replicar de una nube a otra utilizando el método replicate.from
de Pouch. Una solución alternativa consiste en configurar la replicación bidireccional utilizando el antiguo $.ajax
antiguo para publicar en el http://localhost:5984/_replicate
como si estuviera utilizando el curl
nodo (pasando datos de objeto con source
, target
, continous
, etc. .).
Espero que esto ayude a alguien a tomar decisiones sobre las tecnologías que se utilizan al crear una aplicación híbrida sin conexión / en línea sin cables.
En un proyecto fuera de línea / en línea de Phonegap:
¿Cuál es la diferencia entre usar PouchDB y usar CouchBase Lite con el nuevo plugin LiteGap ?
¿Son dos soluciones diferentes para el mismo problema?
¿Se puede usar la API de PouchDB para interactuar con una base de datos local de CouchBase Lite?
Solo quería hacerle saber que escribí una amplia revisión de rendimiento que muestra las diferencias entre CouchDB y Couchbase Lite.
Algunos hallazgos:
- PouchDB gana al "agregar documentos masivos" y "obtener un documento por identificación"
- Couchbase Lite gana al obtener todos los documentos
- se dibujan al "consultar un documento a través de la vista" (PouchDB es más rápido pero Couchbase Lite tiene el almacenamiento en caché)