/ / Speicherverluste im Dojo vermeiden? - Javascript, Dojo

Vermeiden Sie Speicherlecks im Dojo? - Javascript, Dojo

Für lang laufende Anwendungen im BrowserMit einem Toolkit wie Dojo höre ich immer wieder den Punkt, dass unbewegliche Verweise vermieden werden müssen. Jede Sprache / Umgebung hat jedoch ihre eigenen Besonderheiten, wenn es um die Speicherverwaltung geht.

Wie kann ich vermeiden, dass beim Erstellen einer App im Dojo baumelnde Verweise entstehen? Ich denke an Regeln wie "zuteilen" in iOS: wie man sie benutzt und wie man sich nach dem Aufräumen säubert.

Antworten:

2 für die Antwort № 1

Ich denke, das größte, was Dojo zu bieten hat, ist, dass Sie daran denken sollten, alle Ereignisse zu trennen, die Sie verbinden.

Dazu gibt es ein einfaches Muster, beispielsweise in einem benutzerdefinierten Dijit:

//connecting some events
this._events = [
dojo.connect(...),
dojo.connect(...)
];

Das Trennen der Verbindung ist sehr einfach:

dojo.forEach(this._events, dojo.disconnect, dojo);

Das gleiche Muster gilt bei der Verwendung this.connect in einem Dijit


1 für die Antwort № 2

Es sollte auch beachtet werden, dass Sie auch die unter diese AntwortSie könnten in Schwierigkeiten geraten. Es kann zyklische Verweise geben, die der Garbage Collector nicht erkennen kann, oder Verweise, die von Dojo selbst nicht ordnungsgemäß freigegeben werden. Manchmal müssen Sie explizit "delete" für sie aufrufen. Sehen Dies als Beispiel.