我很努力獲得單頁應用程序的內存管理的概念。這是我的代碼:骨幹葉離散DOM元素,無論我如何刪除視圖
var FilterModel = Backbone.Model.extend({});
var taskView = Backbone.View.extend({
template: _.template('<h1><%= title %></h1>'),
initialize: function(){
this.render();
this.listenTo(this.model, 'destroy', this.remove);
console.log(this.model)
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
},
events:{
'click h1': 'removeView'
},
removeView: function(){
this.model.destroy();
console.log('removed');
}
});
var filterModel = new FilterModel({title: 'Test'});
var taskview = new taskView({model:filterModel});
// I make heap snapshot before and after the change!
setTimeout(function(){
$("h1").click()}, 3000
)
$('body').append(taskview.$el);
我被大量的文章,使用「刪除」和「消滅」取出DOM樹時,將清理任何內存泄漏告訴。
但Chrome配置文件實用程序另有說明。無論我做什麼,我都會分離DOM元素。
UPDATE !!! 在響應嘗試了幾件事情後,我仍然得到這個谷歌瀏覽器: 這裏的jsfiddle:http://jsfiddle.net/HUVHX/
@moo,我不確定你指的是什麼? – Janck
@ muistooshort注意到他正在調用'this.model.destroy()'並且該視圖正在偵聽觸發默認的'View#remove'方法的銷燬事件 – ekeren
@ekeren:對,謝謝,沒有看到。 –