【问题标题】:Conflict resolution when sync Backbone models to server将 Backbone 模型同步到服务器时的冲突解决
【发布时间】:2013-08-09 21:47:53
【问题描述】:

大多数单页浏览器应用程序都应该是“协作的”,这意味着几个人可以同时编辑同一个文档或对象(想想谷歌文档)。我正在尝试在后端使用 Backbone.js 和 Rails 实现协作应用程序。我确实了解 Backbone 模型同步的工作原理,但我想知道处理冲突解决的最佳做法是什么?

这是一个示例:用户更新一本书的“作者”字段,Backbone.js 模型“书”向服务器发送同步请求......但是其他人已经在这本书一秒钟前更新了这个字段。如何处理这种情况?是否有任何常见的做法/框架/库来处理冲突?

【问题讨论】:

    标签: ruby-on-rails backbone.js sync conflict


    【解决方案1】:

    签署数据以确认其有效性:

    在后端创建记录:

    {
        "author": "Ernest Hemingway",
        "signature": "8332164f91b31973fe482b82a78b3b49"
    }
    

    然后当有人检索记录时,签名也随之检索。 当他编辑记录时,签名被发送回后端。如果签名与数据库中的内容匹配,则它是有效的编辑,后端会为记录生成一个新签名并保存它。 如果签名匹配,则意味着其他人同时进行了编辑。

    【讨论】:

    • 这实际上正是我所做的,但我使用了更新的时间戳而不是签名,因为它已经存在并且不同的人在 1 秒内更新相同记录的概率接近于零,因为产品细节。我的问题更多是关于常见实践和框架(比如 node.js 的 derby.js),所以我不需要自己创建所有处理程序。无论如何,谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多