Cat*_*ry6 8 local-storage meteor
我有兴趣使用Meteor框架创建一个应用程序,该框架将长时间(多个小时)与网络断开连接.我相信meteor将本地数据存储在RAM中的迷你mongodb js结构中.如果用户关闭浏览器或刷新页面,则所有本地更改都将丢失.如果地方变化保存在磁盘上这将是很好(localStorage?indexedDB?).Meteor即将推出的任何机会?
相关问题...... Meteor如何处理文档冲突?换句话说,如果2个用户编辑相同的MongoDB JSON文档,那么该冲突是如何解决的?乐观锁定?
冲突的解决是“最后的作家获胜”。
更具体地说,客户端上的每个 MongoDB 插入/更新/删除操作都映射到一个 RPC。来自给定客户端的 RPC 始终按顺序回放。来自不同客户端的 RPC 在服务器上交错排列,没有任何特定的顺序保证。
如果客户端在断开连接时尝试发出 RPC,这些 RPC 会排队直到客户端重新连接,然后按顺序回放到服务器。当多个客户端执行离线 RPC 时,它们最终在服务器上运行的顺序高度依赖于每个客户端重新连接的确切时间。
对于一些离线突变,比如 MongoDB$inc和$addToSet,这个模型按原样工作得很好。但是许多常见的修饰符(例如)$set在长时间断开连接时不会表现得很好,因为突变可能会与其他客户端的干预更改发生冲突。
因此,构建“离线”应用程序不仅仅是保存本地数据库。您还需要定义实现某种类型的冲突解决的 RPC。最终,我们希望拥有实现各种解决方案的交钥匙包。
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |