Mar*_*coS 11 couchdb offline-caching angularjs firebase pouchdb
我正在使用Firebase作为后端实现AngularJS Web应用程序; 它也应该脱机工作; 多用户同步问题应该非常有限,因为app - by design - 只允许离线时的新数据条目.
我了解Firebase具有脱机功能,从某种意义上说,客户端可以承受临时网络连接故障:任何写入操作都将被延迟并缓存,直到网络再次出现.
我问是否存在任何可能性(或者是否计划实施它)以扩展Firebase离线功能,以使客户端能够在本地缓存服务器上(部分)数据的快照,从而为客户提供完整的离线体验,也提供读取操作.
我看到第三部分Firebase包装器存在,但它的文档非常"有限"(要善待...... :-).一个原生解决方案应该是首选...
更新:Frank van Puffelen发表评论后,我更有资格证明我的问题:
*Firebase本身是否支持其Web API中的脱机数据访问,或者是否会很快支持?*
Ton*_*gan 11
Firebase的替代方案可以解决JS应用程序的这个问题CouchDb (server) <=> PouchDb (JS client).如果你为AngularJS应用程序实现了一个漂亮的干净服务层,那么移植到PouchDb应该是相当直接的,因为它们都是NoSQL/JSON数据库.
PouchDb是一个Javascript API,可实现完全脱机的 CouchDb客户端.它可以自动检测和使用_local storage_,_IndexDb_或者_WebSQL_在线或离线时永久保留本地数据.PouchDb API可用于访问本地或远程数据库(只需更改URL),并在两者之间连接完整同步或过滤同步.有许多有用的PouchDb插件,代码示例和一个小的包装器库来支持AngularJS的Q promises API.
使用PouchDb,您可以在离线时安全地启动应用程序,然后几天后重新启动应用程序并将所有CUD数据更改同步到服务器.这可能导致更新冲突,因此CouchDb支持用于检测和跟踪此操作的记录版本控制.因此,您可能需要服务器端逻辑来解决这些冲突.对于具有离线同步和CouchDb关键功能的分布式系统而言,这是不可避免的(不完全正确...请参阅注释)
PouchDb基本上是Apache CouchDb的重新实现,包括它的高效同步协议.CouchDb和PouchDb都经过了良好的测试,免费和开源.开源意味着CouchDb服务器也可以部署为Intranet服务 - 可选择同步到外部云服务.有许多CouchDb托管服务提供商.
Cloudant托管团队最近将他们的BigCouch集群功能添加到Apache CouchDb 2.0项目,现在您可以从Micro Db(PouchDb)=>单服务器=>多主服务器(复制)=>大沙发集群/地理集群扩展.与MongoDb不同,CouchDb安全地支持单服务器部署.
注意:PouchDb也可以使用相同的协议同步到CouchBase但Couchbase!== CouchDb.这是一种商业产品.
PouchDb有许多扩展点和增长列表插件(最后计数37个):
迁移到CouchDb时需要考虑的一个问题是它具有更有限的访问控制模型.这部分是由于它的复制算法.这篇博文详细介绍了这一点(比真正的权威指南更好).
根据 Firebase 文档,它确实如此:https ://www.firebase.com/docs/web/guide/offline-capability.html
来自网站:Firebase 提供了一些简单的原语,允许在客户端与 Firebase 服务器断开连接时写入数据。无论客户端是否完全断开连接,这些更新都会发生,因此即使连接断开或客户端崩溃,我们也可以依靠它们来清理数据。所有 Firebase 写入操作(包括设置、更新和删除)都可以在断开连接时执行。
我是否错误地解释了这个问题?
我几乎删除了我的帖子,但是当我单击 OP 给出的链接时,我看到第三方包的功能与 Firebase 本身的功能完全相同,也许它是在 Firebase 改进同步之前完成的?
当我删除帖子时,我认为OP可能只想要一组选择性的数据,而不是“活动数据”,这是FB在本地存储直到连接恢复的内容
| 归档时间: |
|
| 查看次数: |
4666 次 |
| 最近记录: |