javascript - 如何删除 Backbone 模型客户端?

标签 javascript backbone.js

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

谢谢!!

最佳答案

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

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

Destroy model.destroy([options])

... Triggers a "destroy" event on the model, which will bubble up through any collections that contain it ...

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

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. 确保您编写代码的方式没有绑定(bind)模型的事件(为此使用 View /集合);
  3. 保持模型代码简单,因为应用中的模型编号最多。

我认为通过遵循这些规则,您将不必太担心模型中的垃圾。

关于javascript - 如何删除 Backbone 模型客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489317/

相关文章:

javascript - backbone.js model.fetch 不向 php 发送任何数据

javascript - backbone.js 查看事件未触发

javascript - Backbone.js 模型事件未触发

c# - 剑道用户界面 : Selecting panelbar item by item property

javascript - 使用 Javascript 监听 Flash 事件

javascript - 在 HTML 表 : How To Manage Tables Row Height? 中

javascript - $sql JSON 正确加载,但即时搜索失败。仅限 JavaScript。

javascript - 使用JavaScript获取div背景图片的实际大小

javascript - Backbone.js:一个嵌套的 JSON 响应还是多个 JSON 响应?

javascript - 未捕获的类型错误 : Object [object Window] has no method 'each' function