将Backbone.sync扩展为批量同步?

时间:2012-06-14 22:36:10

标签: backbone.js

使用什么技术来实现Backbone.sync的批量插入/更新?

2 个答案:

答案 0 :(得分:4)

我想这取决于您的使用场景,以及您想要更改调用代码的程度。我认为你有两个选择:

选项1:无需更改客户端(致电)代码

奇怪的是,带注释的source for Backbone.sync给出了“批处理”作为覆盖sync方法的可能原因:

  

使用setTimeout将快速更新批量处理为单个请求。

不是实际保存同步,而是将请求添加到队列中,并且每隔一段时间只进行批量保存。 _.throttle_.delay可能会对您有所帮助。

选项2:更改客户端代码

或者,您可以在集合中添加某种save方法,而不是在模型上调用save。你必须跟踪哪些模型实际被修改,因此需要更新,因为据我所知,Backbone只知道它们是否是新的(但我可能是错的)。

答案 1 :(得分:1)

以下是我的表现

Backbone.originalSync = Backbone.sync;

Backbone.sync = function (method, model, options) {
    //
    // code to extend sync
    //

    // calling original sync 
    Backbone.originalSync(method, model, options);
}

对我来说很好用,我用它来控制来自任何模型或集合的每个ajax请求