Backbone-view-DOM-element entfernt

Immer wieder lese ich über die Backbone.js zombie (oder memory leak) problem. Im Grunde müssen Sie lösen und entfernen das element aus dem DOM, wenn Sie Sie nicht mehr benötigen, um sicherzustellen, dass alle Ereignisse entfernt werden, wie gut.

Nun, ich habe eine single-page-app mit ein paar Containern:

<div id="page1"></div>
<div id="page2"></div>

und meine underscore.js Vorlagen für diese Platzhalter. Ich habe ein Modell pro Seite wie:

HomeView = Backbone.View.extend({
  el: '#page1'
)}

Nun, wenn ich auf ein element auf dieser Seite navigiere ich zu einem anderen Backbone.js Ansicht:

clicked: function(ev){
  $(this.el).remove(); //<-- this is the problem
  $(this.el).unbind();
  App.navigate('page/2', true);
}

Dieser funktioniert einwandfrei, aber... ich entfernte die page1 element vom DOM-also wenn ich mit der zurück-Taste gelangen Sie zur vorherigen Seite mein element ist verschwunden und es gibt nichts zu befestigen Sie den HTML-Code.

Ich wahrscheinlich gar nicht verstehen, wie man link Backbone.js Ansichten mit DOM... sollte ich halten das element mit dem Risiko von memory leaks?

Dank!

> ich halte das Lesen über die Backbone.js zombie (oder memory-leak-problem haben Sie einen link oder Artikel zu Rücken?
Hier gehen Sie auf: lostechies.com/derickbailey/2011/09/15/...
gut derick tut versorgen Sie mit, eine Lösung hat er nicht? eine view manager-oder wie Sie es nennen wollen.

InformationsquelleAutor Cimm | 2011-12-12

Schreibe einen Kommentar