pouchdb
最近,“移动优先”一词获得了更多的声名狼藉,因为微软的新任首席执行官宣布了公司的重点转移。 最近我在研究移动框架时,遇到了另一个术语-“离线优先”。
尽可能多地使用手机或平板电脑上网,不可避免地,有时您没有连接但仍需要工作。 正是在这些时代,具有脱机/数据同步功能的移动应用程序大放异彩。 并非所有的应用程序发布者都希望将数据存储在iCloud之类的公共云上,特别是在最近出现安全漏洞的情况下。 存在其他几种选择,对于本篇文章,我将探讨一个竞争者的移动端。
CouchDB和数据同步
CouchDB已经存在了很长一段时间,尽管它没有像MongoDB一样受到关注,但是它具有非常引人注目的功能。 它的数据复制/同步功能非常强大且成熟。 它提供“实时”复制,主要关注CouchDB服务器群集的故障转移。
事实上,“沙发”是对C光泽华氏度 ünreliableÇommodity ^ h ardware的缩写,和CouchDB的团队选择了“最终数据的一致性”的办法在眼前镜像。 因此,如果您要在移动应用程序上查找实时更新,则可能应该考虑使用其他替代方法,例如Socket.IO等。但是,我发现“接近时间”足够接近(几乎无法区分)为了我的目的
围绕CouchDB复制协议(通过HTTP)涌现了几个客户端库,以使开发人员可以更轻松地在本地存储数据并在可以建立Internet连接时同步到远程服务器。 我一直在研究一些特别是混合应用程序开发人员应该感兴趣的应用程序。
PouchDB – JavaScript CouchDB实现
PouchDB不仅提供客户端数据到远程服务器的复制,还为浏览器提供了健壮的键/值数据存储。 不仅是浏览器,而且是任何具有磁盘访问权限JavaScript环境,包括Node.js。
PouchDB网站上有一个入门教程 ,可指导您逐步完成构建简单单页应用程序(SPA)的过程。 该应用程序是基于出色JavaScript框架TodoMVC基准的原始 JavaScript实现建模的。 如果您正在寻找SPA框架的很好比较,我强烈建议您查看TodoMVC。
在PouchDB教程中,他们使用在Iris Couch上运行的托管CouchDB实例演示了数据同步功能。 我已使用本地Node / Express / PouchDB服务器在GitHub上提交了完整的教程代码 ,以演示其数据同步功能。 这样,您就可以使用代码,而不必在Iris上注册托管的CouchDB实例。
请注意,如果您打算在Windows上运行此程序,则需要能够运行node-gyp来构建Node模块之一。 我已经能够在Windows上设置我的环境,但是建议只运行Linux VM。
克隆,运行和探索
简单如:
git clone https://github.com/DJacksonKHS/todo-sync.git
cd todo-sync
npm install
npm start
然后,浏览至http:// localhost:3000签出该应用程序。 在浏览器中打开第二个选项卡,以查看更改在客户端之间的同步。
我还整理了一个简单的Cordova / PhoneGap应用程序,该应用程序将提交另一个仓库 ,因此请稍后再查看以查看此应用程序在移动设备上运行的情况。 它将包括可能在Iris Couch或Heroku上运行的CouchDB或PouchDB Server实例。
结论
PouchDB至少有一些适用于移动SPA框架的适配器,包括Backbone和Ember 。 我无法使Ember适配器正常工作-仍未准备就绪。 我还没有完成Backbone适配器的集成,但是如果我不能很快使Ember工作,则可能会将它用于打包的混合应用程序。
如果您正在寻找移动混合应用程序的离线数据同步,强烈建议您研究PouchDB。 它不仅具有出色的数据同步功能,而且以CouchDB建模的键/值存储还是在本地存储和缓存数据的好方法。 希望这个简单的介绍对您评估选项有帮助。
翻译自: https://www.javacodegeeks.com/2014/11/using-pouchdb-for-offlinedata-sync.html
pouchdb