Backbone不断创建新模型

时间:2013-07-02 09:58:20

标签: backbone.js

每当我对我的收藏品进行“获取”时,骨干为每个项目创建新模型。旧模型留在内存中,导致大量内存泄漏。

“fetch”调用之间的数据没有变化,如果骨干不能识别没有变化并继续进行?

2 个答案:

答案 0 :(得分:2)

Backbone集合将使用“set”方法更新集合中的模型数据。 Set是一种智能方法,当集合从服务器获取数据时,它将执行这些检查:

  1. 添加:如果列表中的模型尚未包含在集合中,则会添加该模型。
  2. merge:如果模型已经在集合中,则其属性将被合并
  3. 删除:如果集合包含列表中不存在的任何模型,则将删除它们
  4. 您的问题是,即使您只是尝试刷新更新的数据,集合也会在您从服务器获取数据时不断添加新模型。我认为您的数据没有唯一的“id”属性。因此,当从服务器获取数据时,集合无法执行“智能更新”。

    {id:"1234",name:"blabla","tel:0600000000"}
    

    我希望这对你有所帮助。

答案 1 :(得分:0)

问题与我想的不同。

我在视图中保留了一个子视图列表,因此我可以删除它们。但是,似乎有两个具有相同名称的不同属性。一个人持有观点。 enter image description here