【发布时间】:2014-01-23 04:10:52
【问题描述】:
我正在创建一个单页应用程序。我想在切换到另一个视图时删除一个视图。在当前视图中,我有一组照片。如何有效地删除视图和照片集的视图而不会出现内存泄漏?
我做了以下事情:
销毁方法:
destroy: function(){
this.undelegateEvents();
this.stopListening();
this.$el.empty();
collection.reset();
}
事件:
this.listenTo(collection, 'reset', this.resetBoard);
事件处理:
resetBoard: function(collection, options){
var models = options.previousModels;
_.each(models, function(model){
model.id = null;
model.destroy();
});
}
这里我先清空$el($el会被其他视图使用),这样DOM操作就可以一次性完成了。接下来,我重置集合并销毁这些模型和相关视图。
这个逻辑正确吗?有没有更好的解决方案?
【问题讨论】: