我了解当通过 .remove() 移除视图时,Backbone 会在该视图上调用 .stopListening() 方法来移除与该视图相关联的任何事件监听器。这是根据 Backbone 文档所述的:
remove view.remove()
从 DOM 中删除视图,并调用 stopListening 来删除视图已经监听的任何绑定事件。
我有一些视图附加到一个只有与它们自身dom操作相关的容器中,这是通过 Backbone 的 events 钩子实现的。
var View = Backbone.View.extend({
events : {
'input keyup' : 'searchDropdown'
},
searchDropdown: function () {
$('dropdown').empty();
//Appends views based on search
}
});
我的问题实际上是在调用$.empty()清空容器并移除其中的视图时是否会泄漏任何内存(无论大小)。如果有,是否有任何良好的约定来访问和调用.remove()删除这些视图?