8

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

4

2 回答 2

4

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

选项 1:不更改客户端(调用)代码

奇怪的是,Backbone.sync 的注释源将“批处理”作为覆盖该sync方法的可能原因:

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

与其实际保存同步,不如将请求添加到队列中,并且每隔一段时间才批量保存。_.throttle或者_.delay可以在这里帮助你。

选项 2:更改客户端代码

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

于 2012-06-15T10:01:08.870 回答
1

我是这样做的

Backbone.originalSync = Backbone.sync;

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

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

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

于 2015-08-20T07:38:07.860 回答