Javascript 主干仅在数据已更改的集合中保存已更改的模型

Javascript 主干仅在数据已更改的集合中保存已更改的模型,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,如果我有一组模型,然后在我的代码中,我会: collection[0].set({name: "Joe"}); collection[1].set({username: "abcd"}); collection[10].set({name: "bob"}); 是否有一种方法可以对所有模型执行.save(),但只更新已更改的字段和模型?就好像该集合包含1000多个模型一样,第一次执行获取操作已经占用了大量系统资源,而对1000多个模型执行.save()操作将占用更多…: 如果您只希望将更改的属性

如果我有一组模型,然后在我的代码中,我会:

collection[0].set({name: "Joe"});
collection[1].set({username: "abcd"});
collection[10].set({name: "bob"});
是否有一种方法可以对所有模型执行
.save()
,但只更新已更改的字段和模型?就好像该集合包含1000多个模型一样,第一次执行
获取操作已经占用了大量系统资源,而对1000多个模型执行
.save()
操作将占用更多…

如果您只希望将更改的属性发送到服务器,请调用model.save(attrs,{patch:true})


调用model.save并传递属性集,而不是对属性执行
set()
,然后进行保存。您可以在集合中迭代,使用检查模型是否已更改,并发送一个
补丁
(或播放以更改该补丁)请求更改的属性。可以使用以下命令检测更改的属性:

伪代码:

collection.each(函数(模型){
if(model.hasChanged())
save(attrs,{patch:true});
//---------------^可以是单个属性、更改属性或其他任何属性
});

旁注:你不应该一次有1000个模型。。。有分页、延迟加载等技术

是的,但我不想对我更改的每个模型都这样做。有没有一种方法可以让主干网检测到更改了什么型号,并且只对其执行
save()
操作?收集[0]
是否有效。。?因为集合是一个对象,并且模型位于
models
属性中。