在Phonegap离线/在线项目中:
使用PouchDB和将CouchBase Lite与新LiteGap插件一起使用有什么区别?
它们是针对同一问题的两种不同解决方案吗?
PouchDB API可以用来与本地CouchBase Lite数据库进行交互吗?
答案 0 :(得分:30)
经过一些研究并成为一个相对较新的话题,我认为分享我回答自己问题的经历会很有趣:
使用PouchDB和使用CouchBase Lite与新的LiteGap插件有什么区别?
PouchDB可以在设备上创建本地数据库(websql
或IndexedDB
),并使用外部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以在localhost:5984
上使用设备Couchbase Lite。
现在,通过Pouch,您可以create
一个数据库,put()
或replicate
从本地到云端。但是,我发现使用Pouch的replicate.from
方法将问题从云复制到本地。一种解决方法是使用旧的$.ajax
设置双向复制,以便发布到设备的http://localhost:5984/_replicate
,就像使用节点curl
一样(使用source
传递对象数据,target
,continous
等。)。
我希望这有助于某人在创建离线/在线可同步混合应用时决定使用哪些技术。
答案 1 :(得分:8)
只是想让你知道我写了一篇广泛的performance review来展示CouchDB和Couchbase Lite之间的差异。
一些调查结果:
答案 2 :(得分:1)