Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Experten-Node-Frage

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Experten-Node-Frage

Beitragvon my-webdesigner.com am 21.07.2011, 17:43

An alle Javascript-Experten im All, ich habe ein kleines Anliegen und würde mich freuen wenn jemand dafür eine Lösung wüsste :)

Es geht darum, einen Knoten aus dem DOM zu entfernen.
Soweit ganz einfach, mit removeChild() und dem Parent geht das ja ganz fix.

Aber was ist, wenn der Knoten zwar erstellt, nicht aber ins DOM eingefügt würde?
D.h. der Node existiert zwar, er ist erstellt aber nicht eingebunden (z.B. mittels appendChild). Speicher belegt er aber trotzdem, vor allem wenn es um mehr als nur einen Node geht.
removeChild wird da nix, weil es keinen Parent gibt. Ich suche eine Methode wie killNode, removeNode o.ä., das dem Knoten inherent zugeteilt ist.

Danke fürs Bemühen!

Edit: Liege ich richtig mit der Annahme, dass sich der Garbage-Collector darum kümmert, sobald es keine Referenz mehr auf den Node gibt?
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Experten-Node-Frage

Beitragvon Ingo am 22.07.2011, 13:13

Hi.

Objekte existieren so lange, wie sie referenziert werden; das ist in JS so wie in manch anderen Sprachen.
ECMA-262 (Stand Juni 2011) überlässt der jeweiligen Implementierung, wie genau sie die garbage collection
gestaltet; das kann zügig gehen oder auch erst am Ende des jeweiligen execution contexts. - Soweit mein
Stand, siehe http://jibbering.com/faq/notes/closures/#clAtGb .

Gruß, Ingo :)
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Wer glaubt etwas zu sein, hat aufgehört etwas zu werden.
Benutzeravatar
Ingo
Web Moderator
 
Beiträge: 1722
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Experten-Node-Frage

Beitragvon my-webdesigner.com am 22.07.2011, 13:28

Danke für die Antwort, Ingo.
Ich habe ein paar Tests gemacht (mit eine JS-Implementierung von WebKit) und siehe da, sobald es keine zugängliche Referenz mehr auf die Objekte gibt, verringert sich der Speicherverbrauch signifikant. Das ist gut :)

Was mich aber dennoch stutzig mach ist, dass die Engine auch bei "völliger Inaktivität" sekündlich mehr Speicher verbraucht.

Es geht um eine Plattform, die gänzlich auf Ajax basiert, wo Inhalte immer nachgeladen und in den DOM-Baum eingebunden werden. Wenn es dann bei jedem Request zu einem stetigen Anstieg an benötigtem Memory kommt, wäre irgendwo hardwarebedingt Schluss mit lustig, sprich der Browser hängt sich auf oder ladet die Seite neu (was auch schlecht wäre).

Gibt es eine Möglichkeit, den Speicherverbrauch zu kontrollieren, einzudämmen bzw. zu optimieren?
Oder muss man darauf hoffen (ganz im Sinne des Garbage Collectors), dass die Speicherfreigabe rechtzeitig erfolgt?
Gibt es Stress-Tests dazu, wie lange man sein Glück strapazieren kann? Habe nämlich leider nichts dergleichen im Netz gefunden... :(
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien


Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste