主干仅保存具有已更改数据的集合中已更改的模型
Backbone saving only changed models in a collection with changed data
如果我有一个模型集合,然后在我的代码中,我会这样做:
collection[0].set({name: "Joe"});
collection[1].set({username: "abcd"});
collection[10].set({name: "bob"});
有没有办法对所有模型进行.save()
,但让它只更新已更改的字段和模型?就好像集合包含 1000+ 个模型一样,第一次做一个fetch
已经占用了大量的系统资源,而对 1000+ 个模型做一个.save()
会占用更多......
从文档中:
相反,如果您只想将更改的属性发送到服务器,请调用 model.save(attrs, {patch: true})。
与其对属性执行set()
然后保存,不如调用 model.save 并传递一组 attr
您可以迭代集合,使用 hasChanged()
检查模型是否已更改,并为更改的模型发送PATCH
(或与Sync
一起更改该模型)请求。您可以使用changedAttributes
检测更改的属性
伪代码:
collection.each(function(model){
if(model.hasChanged())
model.save(attrs, {patch: true});
//---------------^ could be a single attribute, changes attributes or whatever
});
旁注:您不应该一次拥有 1000 个模型......有分页、延迟加载等技术
相关文章:
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 主干-从模板中迭代的集合中获取特定的模型
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 主干模型:保存时保留集合
- 主干输出用于集合模型的空数组
- 无集合模型
- 无法访问 Backbone.js 集合/模型从模板中
- 在主干应用中持久更新集合模型的正确方案
- Backbone 如何在需要时更新集合模型
- 主干:访问集合模型
- 制作模型属性“;独特的“;在集合模型中
- 打印出集合和集合.模型给出了不同的结果
- 在将集合模型的旧值设置为新值后,获取它们的主干模型
- Backbone.js中的嵌套集合/模型视图管理
- 将Backbone.js JSON响应填充到嵌套集合/模型中的嵌套集合中
- 骨干-在初始化集合模型时传递数据
- 从嵌套的集合模型javascript创建JSON