Я продолжаю читать о проблеме зомби 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);
}
Это работает нормально, но ... Я удалил элемент page1
из DOM, поэтому, когда я использую кнопку "Назад", чтобы перейти на предыдущую страницу, мой элемент исчезает, и нет ничего, к чему можно присоединить HTML.
Я, вероятно, не понимаю, как связать представления Backbone.js с DOM ... следует ли сохранять элемент с риском утечек памяти?
Спасибо!