Backbone.js 是否将Backbone.sync扩展到批处理同步?

Backbone.js 是否将Backbone.sync扩展到批处理同步?,backbone.js,Backbone.js,您应该使用什么技术来实现Backbone.sync的批插入/更新?我想这取决于您的使用场景,以及您希望更改多少调用代码。我认为你有两个选择: 选项1:不更改客户端(呼叫)代码 奇怪的是,注释给出了“批处理”作为重写sync方法的可能原因: 使用setTimeout将rapid fire更新批处理到单个请求中 不要在同步时实际保存,而是将请求添加到队列中,并且每隔一段时间只进行批保存。或者可以帮你 选项2:更改客户端代码 或者,您可以向集合添加某种类型的save方法,而不是在模型上调用save。您

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

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

选项1:不更改客户端(呼叫)代码

奇怪的是,注释给出了“批处理”作为重写
sync
方法的可能原因:

使用setTimeout将rapid fire更新批处理到单个请求中

不要在同步时实际保存,而是将请求添加到队列中,并且每隔一段时间只进行批保存。或者可以帮你

选项2:更改客户端代码

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

我是这样做的

Backbone.originalSync = Backbone.sync;

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

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

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

如果我使用
.throttle
.delay
,如何在一个ajax请求中发送多个“更新”?模型阵列?有多种方法,实际上这取决于您的数据访问模式。这里有一个讨论: