主干 + 木偶 - 模型/集合的内存管理最佳实践
Backbone + Marionette - Memory managment best practices for Models/Collections?
使用 Backbone
和 Marionette
销毁模型/集合时有哪些最佳实践?我知道视图是由木偶自动管理的内存(如果使用正确的话(,但是模型/集合呢?你什么时候摧毁它们?是当你的视图被破坏时,例如下面的代码(它是 TypeScript 而不是 JavaScript(还是?
class SomeItemView extends Marionette.ItemView<Backbone.Model> {
destroy() {
super.destroy();
delete this.model; // is this the best way to destroy a model/collection?
}
}
您可能永远不需要显式删除模型/集合。相反,只要确保您没有留下任何对它们的挂起引用。
生成挂起引用的最常见方法是当您通过全局范围访问模型时,以及当您使用 model.on
而不是 listener.listenTo(model
绑定事件侦听器时。
查看木偶控制器和区域可能会很有用。
使用时
var region = new Marionette.Region({ el: "#container" });
您可以使用它在内部呈现视图:
var some_itemview = new Some_Itemview();
region.show(some_itemview);
如果使用木偶控制器实例化模型和视图。
var some_model = new Backbone.Model();
//Set some properties on the model;
var some_itemview = new Some_Itemview({ model: some_model });
region.show(some_itemview);
然后,当您想要清理视图时,只需调用:
region.close();
您还可以使用region.show(another_view);
它将自动清理上一个视图。
视图和相关模型应被销毁,并且视图是对模型对象的唯一引用。
相关文章:
- 我应该如何在Node中管理内存中的数据
- 如何使用java脚本更改浏览器的内存管理以增加会话存储和本地存储的内存
- 主干网.js事件和内存管理
- JavaScript 中的堆和本机内存分配:如何管理
- JavaScript 中的内存管理
- 转换 Redis 密钥时的内存管理
- 在 javascript 函数和内存管理中声明变量
- jQuery:新的临时 DOM 元素的内存管理
- 主干 + 木偶 - 模型/集合的内存管理最佳实践
- 在 express/node.js API 中进行高效的服务器端 JavaScript 内存管理
- 电话间隙内存管理
- JavaScript 中的性能内存管理
- Javascript内存管理:删除和拼接
- Javascript内存管理(requestAnimationFrame回调)
- 在Node.js中使用Native Abstractions时,如何管理内存
- 使用THRE.JS对象的全局数组的Javascript内存管理
- 管理屏幕外图像的内存
- 了解JavaScript中的内存管理,Mozilla
- 具有重复jQuery数据表AJAX调用的内存管理
- 在Javascript中管理内存变量的最佳方法是什么?