20

在 Phonegap 离线/在线项目中:

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

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

  • PouchDB API 能否用于与本地 CouchBase Lite 数据库交互?

4

3 回答 3

32

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

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

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 on localhost:5984

现在,使用 Pouch,您可以create创建数据库,put()或者replicate从本地到云端。replicate.from但是,我发现使用 Pouch 的方法从云复制到本地存在问题。一种解决方法是使用 good old 设置 2 向复制$.ajax以发布到设备http://localhost:5984/_replicate,就像您使用节点一样(使用,等curl传递对象数据)。sourcetargetcontinous

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

于 2013-08-27T10:32:21.277 回答
10

只是想让您知道,我已经写了一篇详尽的性能评测,展示了 CouchDB 和 Couchbase Lite 之间的区别。

一些发现:

  • PouchDB 在“添加批量文档”和“通过 id 获取文档”时获胜
  • Couchbase Lite 在“获取所有文档”时获胜
  • 他们在“通过视图查询文档”时绘制(PouchDB 更快,但 Couchbase Lite 有缓存)
于 2014-02-03T08:24:51.360 回答
1

除了其他 2 个答案,这里是来自 Couchbase.com 博客站点的示例应用程序,介绍了如何使用 pouchDB 构建待办事项列表应用程序并将其与 CouchBase Mobile 同步。

另一个链接,在黑莓开发者博客上

于 2015-09-27T14:52:56.350 回答