2017-08-07 1 views
-1

Ich bin gerade dabei, dynamisch Bilder zu einem Div hinzuzufügen, weil ich Daten visualisiere. Daher entferne ich auch alle 3 Sekunden Bilder. Ich rufe gerade removeChild auf, aber es entfernt seinen Inhalt nicht aus dem Speicher. Gibt es eine Möglichkeit, etwas Speicher freizumachen? HierIst es möglich, Child zu entfernen und seinen Inhalt auch aus dem Speicher zu löschen?

ist einige Beispiel-Code: https://jsfiddle.net/eybb9rxc/2/

var rightImages = document.getElementById('rightImages'); 

setInterval(function() { 
    rightImages.removeChild(rightImages.childNodes[0]); 
}, 3000); 

Darüber hinaus ist die childNode auch Elemente in sich hat. Müsste ich loop und RemoveChild für jedes Element in ihm aufrufen? Oder würde es einmal genug sein?

+0

Dies wird etwas in der [Dokumentation] (https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild) erklärt, wo angegeben wird, dass ein Knoten ohne Referenzen entfernt wird mit 'removeChild' sollte innerhalb kurzer Zeit vom GC gelöscht werden. – adeneo

Antwort

0

Wenn Sie das Element auf null setzen, wird es für den Garbage Collector aktiviert, solange keine anderen gültigen Verweise auf dieses Objekt vorhanden sind.

+0

dachte ich mir. War mir nicht sicher, ob es irgendeinen anderen Weg als den Müllsammler gab. Vielen Dank! – Jimmy

0

Gemäß this werden alle entfernten Elemente, die keine Referenzen enthalten, vom Garbage Collector gelöscht. Ich denke, es wird null wird ausreichen. Bitte überprüfen Sie den Abschnitt "Referenzzählung der Speicherbereinigung".

Verwandte Themen