将Backbone模型同步到服务器时的冲突解决方案

时间:2013-08-09 21:47:54

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

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

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

1 个答案:

答案 0 :(得分:1)

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

在后端创建记录:

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

然后,当有人检索记录时,将检索签名。 当他编辑记录时,签名被发送回后端。如果签名与DB中的内容匹配,则它是有效的编辑,后端为记录生成新签名并保存。 如果签名匹配,则意味着其他人在平均时间内进行了编辑。