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

Jetzt kostenlos registrieren

Löschen mit "delete"

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Löschen mit "delete"

Beitragvon sharkoozie am 05.08.2011, 13:48

Guten Tag!

Ich bin bei selfhtml/javascript auf den Operator "delete" gestoßen mit dem man nicht vordefinierte Objekte, Variablen etc löschen kann.
Meine Frage bezieht sich auf die Relevanz dieses Operators in der Praxis. Wie sparsam muss man bei JS mit dem Speicher umgehen? Es ist sinnvoll nicht mehr benötigte Variablen zu löschen? Oder ist das heute nur noch eine Frage des Geschmacks und des Stils?

Danke für jede hilfreiche Antwort.
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Löschen mit "delete"

Beitragvon Ingo am 05.08.2011, 16:54

Hi und willkommen.

Grundsätzlich hat JS eine automatisch im Hintergrund laufende garbage collection (kurz gc).
D.h. jede Variable, die im Script (näher execution context) nicht mehr verwendet wird, wird
aus dem Speicher entfernt. "Verwendet werden" heißt, es gibt noch mindestens eine Referenz
auf diese Variable.
Wie effizient die gc funktioniert, hängt von der jeweiligen JS-Implementierung (Browser) ab. Ich
vermute, dass man delete schon mit viel Augenmaß einsetzen muss, wenn man die gc dadurch
beschleunigen will. jQuery setzt delete einige Male ein, aber gemessen an der Komplexität des
Codes (260k in Version 1.6.2) erscheint mir das eher wenig.

Mein Eindruck: Es mag bei besonders performance-lastigen Scripts durchaus einen Versuch
wert sein, nicht mehr benutzte Objekte per delete zu entfernen. Im übrigen sehe ich aber
auch die Gefahr, dass vor lauter "händischem Aufräumen" die Lesbarkeit des Codes leidet.

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: Löschen mit "delete"

Beitragvon sharkoozie am 07.08.2011, 11:11

Vielen Dank, Ingo.

Das waren einige brauchbare Informationen.

Ich hänge jetzt seit einiger Zeit vor meinen JS-Lektionen. Das Prinzip habe ich verstanden, zumal mir Funktionen und Schleifen aus C++ bereits bekannt sind. Dennoch habe ich das Gefühl, dass es noch ewig dauern könnte, bis ich JS intuitiv effizient zur Lösung spezifischer Probleme einsetzen kann.
Sollte man viel Zeit darauf verwenden seine JS-Skills zu "perfektionieren"? Oder erübrigt sich vieles durch den Einsatz von JQ? Ich wollte nicht sofort auf die Bibliothek zurückgreifen, sondern erstmal ein fundamentales Wissen über die Materie aufbauen. Auf der anderen Seite will ich auch keine Zeit verschwenden.

viele Grüße

Ben
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44

Re: Löschen mit "delete"

Beitragvon Ingo am 09.08.2011, 04:29

Ich denke, wenn irgendwie Zeit und Geduld da ist, die Dinge erste einmal "zu Fuß" zu erledigen, kann das
nur helfen. Zum Beispiel AJAX: Wenn man so etwas erst einmal von Hand zusammengeschraubt hat, dann
wird man wesentlich weniger von der Vielfalt der Optionen und Varianten beeindruckt, die z.B. JQuery dazu
liefert. Anderes (düsteres) Kapitel: Events, hier speziell die Mauskoordinaten relativ zum Clientbereich oder
aber zur top left corner des Dokuments ermitteln (scroll offset...). Alles mühselig. Wozu ist das gut?
  1. Man ahnt deutlich schneller, was die Ursache eines Problems sein könnte.
  2. Man begreift, warum Bibliotheken eben gerade die Dinge anbieten, die sie anbieten: Es sind gezielte
    Erleichterungen, Dinge, die "zu Fuß" viel fehleranfälligen Code verlangen - den andere mit vereinten
    Kräften schon geschrieben und ausgetestet haben, viel gründlicher als man es selbst machen kann/möchte.
Vielleicht tut's ja ein Mittelweg: Man pickt sich einige wenige Vorhaben heraus und versucht, gewissenhaft
alles nach eigenem Wunsch hinzubekommen. Nicht lockerlassen, wenn der Browser nicht will, sondern auf
Klärung bestehen. - Danach kann man dann sehen, wo genau einem JQuery et.al. Arbeit abnehmen können.

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


Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast