Backbone.js 使用主干网和stickit使模型保持最新

Backbone.js 使用主干网和stickit使模型保持最新,backbone.js,backbone-stickit,Backbone.js,Backbone Stickit,我使用主干+stickit在视图和模型之间提供双向绑定,但遇到了一些问题 如何使模型与服务器保持最新? 我已将集合设置为每60秒调用一次fetch()。这将从服务器获取最新版本的模型,并“智能地合并”它们。但是,我仍然看到本地更改被覆盖。如果我在文本框中输入了一些文本(使用stickit正确绑定),则来自服务器的更改将覆盖本地更改 视图更改时如何更新服务器? 当属性发生更改时,Stickit会在模型上发出更改事件,但当服务器上的属性发生更改时,也会触发更改事件。调用model.save()的最佳

我使用主干+stickit在视图和模型之间提供双向绑定,但遇到了一些问题

如何使模型与服务器保持最新?

我已将集合设置为每60秒调用一次fetch()。这将从服务器获取最新版本的模型,并“智能地合并”它们。但是,我仍然看到本地更改被覆盖。如果我在文本框中输入了一些文本(使用stickit正确绑定),则来自服务器的更改将覆盖本地更改

视图更改时如何更新服务器?

当属性发生更改时,Stickit会在模型上发出更改事件,但当服务器上的属性发生更改时,也会触发更改事件。调用model.save()的最佳位置在哪里?因此,它只有在stickit发出更改事件时才会被调用

  • 您可以在每个模型
    更改
    事件上保存模型(坏主意)
  • 您可以尝试使用
    silent
    选项获取模型,然后根据需要触发某些属性上的更改事件(更好的主意)
  • updateView
    设置为
    false
    (好主意)

  • 用户如何使用你的应用程序?是否要支持实时协作编辑?您是否支持资源锁定,以便一次只能有一个用户更新资源?如果多个用户可以编辑一段内容,60秒的更新延迟不是一个好主意。我可以更频繁地更新,但这只会给服务器带来更大的压力……你解决了这个问题吗?