PouchDB和CouchBase Lite + LiteGap之间的差异

TMi*_*hel 20 couchbase cordova pouchdb couchbase-lite

在Phonegap离线/在线项目中:

  • 使用PouchDB和使用CouchBase Lite与新的LiteGap插件有什么区别

  • 它们是针对同一问题的两种不同解决方案吗?

  • PouchDB API可以用于与本地CouchBase Lite数据库交互吗?

TMi*_*hel 31

经过一些研究并成为一个相对较新的话题,我认为分享我回答自己问题的经历会很有趣:

使用PouchDB和使用CouchBase Lite与新的LiteGap插件有什么区别?

PouchDB可以在设备上创建本地数据库(websqlIndexedDB),并使用外部CouchDB进行复制.也可以用作外部CouchDB的客户端.

Couchbase Lite在设备上创建iOS/Android数据库,默认情况下可以访问http://localhost:5984.然后,您可以使用其他外部Couchbase/CouchDB服务复制本地Couchbase Lite.LiteGap允许您在PhoneGap项目中创建和使用Couchbase Lite数据库.

这两种解决方案都可以在Phonegap项目中使用.

它们是针对同一问题的两种不同解决方案吗?

简而言之,没有.

PouchDB是跨平台的,因此您可以在Web项目中使用它,也可以在混合应用程序中使用它.它还提供了一个有用的API,可以直接与本地数据库或外部CouchDB进行交互.基于websql/IndexedDB技术,您有存储限制,不断要求用户为您的Web /应用程序提供更多本地存储空间.

Couchbase Lite是一种原生的iOS/Android解决方案,可在设备localhost中设置Couchbase数据库.与LiteGap插件一起,您可以在Phonegap项目中使用它.

PouchDB API可以用于与本地CouchBase Lite数据库交互吗?

是的,但在我的测试中,某些功能无法正常工作.

首先,Couchbase Lite没有javascript HTTP API所以我想用Pouch作为客户端.PouchDB可以使用外部Couch服务,因此我们设置Pouch以使用Couchbase Lite设备localhost:5984.

现在,袋可以create一个数据库,put()replicate从本地到云中.但是,我发现使用Pouch的replicate.from方法将问题从云复制到本地.一个解决方法是设置2路复制使用好老$.ajax张贴到设备的http://localhost:5984/_replicate,如果你是使用节点curl(通过目标数据source,target,continous等..).

我希望这有助于某人在创建离线/在线可同步混合应用程序时决定使用哪些技术.


zem*_*rco 9

只是想让您知道我写了一篇广泛的性能评估,显示了CouchDB和Couchbase Lite之间的差异.

一些发现:

  • PouchDB在"添加批量文档"和"通过id获取文档"时获胜
  • Couchbase Lite在"获取所有文档"时获胜
  • 他们在"通过视图查询文档"时绘制(PouchDB速度更快但Couchbase Lite具有缓存功能)