Backbone.js – Speicherverwaltung

Ein weiterer wichtiger Aspekt, den wir bei der Arbeit mit Backbone.js berücksichtigen müssen, ist die Speicherverwaltung. Da wir bei der Erstellung unserer Anwendung uneingeschränkte Freiheit haben, müssen wir häufig Lösungen einführen, um die Leistung der Anwendung zu verbessern.

Bis zu einem gewissen Grad ist dies ein Vorteil, jedoch kann dies zu einem Problem werden, sodass wir uns möglicherweise nicht mehr auf die interessante Entwicklung konzentrieren. Daher können wir das Verhalten, das wir durch das Einbeziehen von Erweiterungen erzielen können, weiter untersuchen von Backbone.js wie zum Beispiel MarionetteJS .

Problem mit den Ansichten

Wenn wir eine wiederverwendbare Ansicht haben , müssen wir auch darüber nachdenken, wie sie bereinigt werden kann, wenn ein neues Objekt generiert wird, und zusätzlich über Event-Handler nachdenken, da diese aus unserer Sicht ein kleines Problem darstellen können. Ein Fall, den wir analysieren können, ist der folgende:

backbone_adminmemoria.jpg

Zuerst definieren wir eine Ansicht und geben an, dass sie beim Generieren eine Warnbox sendet, damit wir wissen, wann das Ereignis eintritt. Bis zu diesem Punkt sehen wir nichts Seltsames, aber was passiert, wenn wir das Objekt beim Instanziieren des Modells wiederverwenden?

backbone_adminmemoria2.jpg

In diesem Fall wird bei erneuter Verwendung desselben Variablennamens die gleiche Warnmeldung angezeigt, da beim Erstellen der zweiten Verwendung der Variablen die erste außerhalb des Gültigkeitsbereichs liegt Javascript Garbage Collector sammelt es, um den Speicher zu optimieren.

Mögliche Lösung
Eine interessante Lösung, die wir anwenden könnten, besteht darin, die Ansicht zu schließen. Dadurch erreichen wir, dass der Verweis auf das ursprüngliche Objekt beibehalten wird und wir dann die mit seiner Initialisierung verbundenen Methoden nicht wiederholen müssen.

Dann hätten wir etwas Ähnliches:

See also  So aktivieren Sie die automatische Antwort "Abwesend" in Google Mail

backbone_adminmemoria3.jpg

Wir konnten dieses Problem beheben, es ist jedoch immer noch etwas nicht in Ordnung. Die manuelle Behandlung dieses Problems erscheint nicht sehr nützlich. Wenn wir jedoch etwas weiter überlegen, was passiert, wenn wir einen Antrag stellen müssen? Diese Art von Lösungen ist viel umfangreicher und komplexer. Das Einzige, was Sie tun können, ist, dass unsere Anwendung komplizierter zu warten und viel schwerer ist.

Lösung: MarionetteJS

Um diese Art von Fällen zu lösen, können wir auf MarionetteJS zurückgreifen, die als Erweiterung auf Backbone.js platziert ist und uns bei der Code-Reduzierung und der Lösung von Fällen wie dem oben gezeigten hilft.

Im folgenden Beispiel sehen wir, wie MarionetteJS das Problem lösen kann, indem Sie das Ereignis einfach wieder anhängen:

backbone_adminmemoria4.jpg

Wenn Sie dies in der listenTo () -Methode von Backbone.js tun, ist MarionetteJS direkt für die Verwaltung der Ereignishandler verantwortlich, sodass wir das manuelle Schließen der Ansichten vermeiden und bei komplexen Anwendungen eine große Menge Code sparen .

Am Ende dieses Tutorials sehen wir, wie flexibel Backbone.js ist, mit dem wir Lösungen entwickeln können, die uns bei der Entwicklung unserer Anwendung helfen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *