【发布时间】:2015-04-28 22:25:30
【问题描述】:
我正在构建一个 SPA,并试图找出一种安全且干净的方法来在离开应用程序的一个部分时删除所有主干实体。我知道 Model.destroy()、View.remove() 和 Collection.reset() 方法。我主要担心的是:
- Model.destroy() 负责销毁服务器上的模型。是否还需要手动删除 Javascript 模型?
- 类似地,我意识到 View.remove() 将从 DOM 中删除视图。应该如何安全地摆脱视图对象?
- Collection.reset() 清除集合中的模型。这是否也会删除底层 Javascript 模型对象,还是需要明确删除它们?
- 如何摆脱集合对象本身?
我的问题对某些人来说可能看起来很简单,但它们让我困惑了一段时间。我没有找到任何关于这个确切问题的有用信息,这就是我决定在这里发帖的原因。我也是一个相对较新的 Javascript 并且不知道 Javascript 的垃圾收集方案。 Javascript 是否有垃圾收集器,它会负责删除所有此类对象吗?
我也在研究删除视图的最佳方法。
- View.remove() 仅从 DOM 中删除视图。我的猜测是,仍然需要注意删除/销毁底层模型并取消绑定所有事件侦听器。对吗?
- 我经常使用 _.bindAll 来更改函数调用的上下文。我还没有找到解除绑定的方法。我的理解是,这是不必要的。我说的对吗?
【问题讨论】:
标签: backbone.js collections model reset destroy