使用什么技术来实现Backbone.sync的批量插入/更新?
答案 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请求