2012-08-23 72 views
10

我试图评估使用IndexedDB解决脱机问题。它将填充当前存储在MongoDB数据库中的数据(按原样)。将MongoDB服务器数据同步到IndexedDB本地存储

一旦数据存储在IndexedDB中,它可能在MongoDB服务器上发生更改,我需要传播这些更改。是否有任何现有的框架或图书馆为Mongo做这样的。我已经知道CouchDB/PouchDB,并没有探索这两个。

+0

你应该看是否有从流星的代码是相关的。 – ranman

+0

非常有趣,谢谢。可能是我真正的问题的解决方案:编写一个离线应用程序。你应该让这个答案,所以我可以给你的点,如果它确实解决了我的问题 –

+0

原来不支持完整的离线情况(离线登录+更改+同步到服务器时,当返回在线):https://组。 google.com/d/topic/meteor-core/ZVj6RFbKDq0/discussion –

回答

0

我还没有与IndexDB合作,但设计问题并不罕见。我对您的应用程序的理解是,当客户端连接到MongoDB时,您会拉下一组文档以进行本地存储并断开连接。然后,客户端可以在本地执行任务(不连接到数据服务器),然后推送更改。

我看到它,你一定要处理两个,一般情况下方式:

  1. 当MongoDB服务器进行更新,并与客户休息的连续性,客户将不得不
    1. 轮询数据(计时器?)或
    2. 保持WebSocket的开放,让通知自由流动在管道
  2. 当用户需要来推动改变数据备份管
    1. 您可以异步重新连接,检查状态变化,(解决冲突根据您的业务规则)
    2. 具有处理冲突的服务器端(光)接口(取决于您的应用程序的复杂性,在MongoDB中到IndexedDB的更新状态变化比较时间戳应该足够了)
+0

你是否知道anythig可能已经在这个领域中被迫使用了。我们的使用比较简单一点,就是在本地不做任何改变。用户只能发送推送到服务器并可能被接受和/或拒绝的改变请求。如果被接受,他们必须被推回给客户。所以在这种情况下,我们不能在同一个对象上进行本地和远程更改。 –

+0

backbone.js可能存在某些问题,但这是我的联盟中的一个问题。 – patrickgamer

相关问题