离线优先应用程序中的数据同步

11

随着离线优先应用程序的兴起,第一件事情之一就是客户端和服务器之间的数据同步。

这个主题有许多文章和问题,我在研究中发现了一个非常有趣的“独立的数据访问和同步库”叫做Orbit.js

到目前为止,我还没有找到任何关于Orbit.jsAngularJS集成的文章或问题,所有我找到的参考都是与Ember.jsFoundation集成。

我想知道是否有人已经在同一项目中尝试过两者
是否有任何限制或限制?文档中说Orbit.js:

Orbit.js没有特定的外部运行时依赖项,但必须与实现Promises/A+规范的库一起使用,如RSVP

这会对与AngularJS集成造成限制吗?


1
很希望能听到答案。 - Sergey Romanov
Orbit.js的Promise和ajax接口与AngularJS的$q和$http有所不同。为了使Orbit.js更加灵活地进行集成,可能需要进行一些拉取请求。我将在我的一个项目中使用AngularJS + Orbit.js,因为后者实现了JSON API。非常乐意描述结果。 - user2895892
1
是的,实际上我发现$q可以直接使用。像这样Orbit.Promise = $q。这是一个标准。但是jQuery.ajax不是。您可以覆盖OC.JSONAPISource.prototype.ajax,但其中有一些方便的逻辑。也可以编写自定义包装器传递给Orbit.ajax。但无论哪种方式都会很混乱。虽然对于初学者来说已经足够了,但如果可能的话,我将以某种方式简化ajax依赖关系。 - user2895892
@Arantir,你在实现方面有什么进展了吗? - Mustela
@Mustela 很抱歉,我们仍未采用离线优先的方法,Orbit.js 对我们当前的需求也不适用。 - user2895892
显示剩余2条评论
1个回答

0

这两个似乎可以很好地结合在一起,但我自己还没有用这两个工具组合过应用程序。不过,另一个选择是使用不同的数据同步库。几个月前,我偶然发现了 Pouch DB,它确实有一个 Angular 模块。

以下是一些链接,希望对你有所帮助!

PouchDB - http://pouchdb.com Angular 模块 - https://github.com/wspringer/angular-pouchdb


3
是的,这个同步库看起来不错,但它只能在CouchDB中使用。这是一个巨大的限制... - Denis C de Azevedo
@denisazevedo 这不是真的。它内置了CouchDB支持,但是使用事件,您可以让它像我一样发出HTTP请求到REST API。希望这可以帮助!^_^ - Popcorn245
实际上我之所以这么说是因为我在 PouchDB FAQ 上找到了这个。那么,你们的后端实现了CouchDB复制协议吗? - Denis C de Azevedo
@denisazevedo 对不起,你是正确的。我把它和另一个库混淆了。看起来可以用MySQL实现,但可能有点繁琐。 - Popcorn245
@Popcorn245 你想用哪个库? - Jeremy
@Jeremy 我不记得我当时使用的是什么,因为我在回答这个问题后不久就放弃了那个项目。然而,现在我使用 FireBase 来处理所有我的数据同步需求,根据你的应用程序大小,它可能会有点昂贵,但在我看来,其易用性值得每一分钱。一个免费的解决方案是在前端使用 PouchDB 并在后端使用 CouchDB。 - Popcorn245

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接