大多数单页浏览器应用程序应该是“协作”,这意味着有几个人可以同时编辑同一个文档或对象(想想谷歌文档)。我正在尝试在后端使用Backbone.js和Rails实现协作应用程序。我确实理解Backbone模型同步是如何工作的,但我想知道处理冲突解决的最佳做法是什么?
这是一个例子:用户更新书籍的“作者”字段,Backbone.js模型“Book”向服务器发送同步请求......但是其他人已经在一秒钟前更新了这个字段。如何处理这种情况?是否有任何常见的做法/框架/库来处理冲突?
答案 0 :(得分:1)
签署数据以确认其有效性:
在后端创建记录:
{
"author": "Ernest Hemingway",
"signature": "8332164f91b31973fe482b82a78b3b49"
}
然后,当有人检索记录时,将检索签名。 当他编辑记录时,签名被发送回后端。如果签名与DB中的内容匹配,则它是有效的编辑,后端为记录生成新签名并保存。 如果签名不匹配,则意味着其他人在平均时间内进行了编辑。