我一直在阅读有关Backbone.js僵尸(或内存泄漏)问题的内容。基本上,当您不再需要元素时,必须解除绑定并从DOM中删除该元素,以确保所有事件也被删除。
现在,我有一个带有几个容器的单页应用:
<div id="page1"></div>
<div id="page2"></div>
并将我的 underscore.js 模板添加到这些占位符中。我有一个与每个页面对应的模型,如下:
HomeView = Backbone.View.extend({
el: '#page1'
)}
现在,当我点击该页面上的一个元素时,我会跳转到另一个Backbone.js视图:
clicked: function(ev){
$(this.el).remove(); // <-- this is the problem
$(this.el).unbind();
App.navigate('page/2', true);
}
这个可以用,但是...我从DOM中移除了
page1
元素,所以当我使用后退按钮返回上一页时,我的元素消失了,并且没有可附加HTML的内容。我可能不太了解如何将Backbone.js视图与DOM链接起来...我应该保留元素以避免内存泄漏风险吗?
谢谢!