13

删除模型客户端的最佳方法是什么?我不需要担心在服务器端删除它。我如何确保它在任何地方都被删除,避免每一个陷阱,每一个僵尸绑定。我正在寻找删除和销毁所有内容并确保模型被垃圾收集的指南。

谢谢!!

4

1 回答 1

11

这真的取决于这个模型里面有什么。如果它绑定到来自其他实例的事件 - View/Collection/Models,您应该手动删除这些事件侦听器,因为无法一次删除所有它们。

此外, Model.destroy() 从任何集合(主干文档)中删除模型:

销毁模型.destroy([options])

...触发模型上的“销毁”事件,该事件将通过包含它的任何集合冒泡...

您可能想要做的事情是分配一个新的销毁方法,其中包括事件触发和您要删除的内容。

destroy: function(options) {
   // Any events you wish to switch off ( if you have any )
   SomeCollection.off('change', this.changeFn);

   Backbone.Model.prototype.destroy.apply(this, options);       
}

也许您还应该了解一些从模型中减少垃圾的模式:

  1. 不要将初始化模型放在变量中(将其保存在集合中);
  2. 确保以没有事件绑定到模型的方式编写代码(为此使用视图/集合);
  3. 保持模型代码简单,因为应用程序中的模型编号最多。

我认为通过遵循这些规则,您无需担心模型中的垃圾。

于 2012-05-08T07:27:06.363 回答