Was ist ein Element "außerhalb des DOM"?

8

Ich bin ein wenig verwirrt von DOM-Knoten, meist nur die Begriffe.

Früher dachte ich, dass das DOM das ist, was ich in meinem Inspektor gesehen habe, nichts mehr & amp; Nicht weniger. Nun sind mir Funktionen wie document.createElement() bekannt, die DOM-Knoten erzeugen, die mein Dokument als "Kontext" haben, aber das Dokument nicht als "Eltern" haben. Erstellt document.createElement() "aus DOM-Knoten"?

Und ist dieser Begriff nicht irreführend? Ein "Knoten" ist nach meinem Verständnis gleichbedeutend mit einem "DOM-Knoten" oder "HTML-Element". Ist es nicht schlecht, etwas als "außerhalb des DOM-Knotens" zu bezeichnen, wenn Knoten Dinge in einem DOM sind? Der Begriff scheint sich selbst widersprechend.

Um noch mehr Verwirrung zu stiften, gibt es neue Konzepte wie Haltepfade, gelöste DOM-Knoten, hängende DOM-Knoten, Schatten-DOM, Dokumentfragmente, usw.

Welche dieser Begriffe sind synonym? Was sind Fehlschlüssel? Und das sind die tatsächlichen Spezifikationen (Bonus für die Verknüpfung mit Spezifikationen).

    
Josh Ribakoff 05.07.2015, 04:02
quelle

1 Antwort

5
  

Und ist der Begriff "out of DOM nodes" nicht irreführend?

Nein. Zuallererst, wenn es um "das DOM" bezüglich HTML geht, bezieht es sich auf das HTML DOM. Ein Knoten kann im HTML-DOM existieren oder nicht . Ein Knoten (in dem Sinne, dass wir gerade sprechen) ist nur der kleinste selbstenthaltende Teil, der ein DOM darstellen oder sein kann.

Als solches könnte es überall existieren und immer noch ein Knoten sein. Ein Motor ist immer noch ein Motor, wenn er vom Auto gelöst ist. Es ist einfach nicht sehr nützlich, bis es an der richtigen Stelle ist.

  

Ein "Knoten" ist synonym mit einem "DOM-Knoten" oder "HTML-Element", nach meinem Verständnis.

Ein Knoten kann zum HTML-DOM hinzugefügt werden und es kann ein HTML-Element sein , aber es muss nicht sein. In HTML ist ein Textknoten beispielsweise auch ein Knoten. Und ein Knoten kann in einem HTML-Dokument oder XML-Dokument oder RSS-Dokument oder ...

existieren

Oder es könnte ein Knoten sein, der ein HTML-Element ist, aber außerhalb des HTML-DOM existiert, nur im Speicher zum Beispiel. Dies ist der Fall, wenn Knoten dynamisch erstellt werden.

  

Ist es nicht schlecht, etwas als "außerhalb des DOM-Knotens" zu bezeichnen, wenn Knoten Dinge in einem DOM sind? Der Begriff scheint sich selbst widersprechend.

Nach obigem, nein, ist es nicht. Eine Engine ist immer noch eine Engine und ein Knoten ist immer noch ein Knoten.

  

Um weitere Verwirrung zu erzeugen, gibt es neue Konzepte wie das Zurückhalten von Pfaden

"Pfade beibehalten" hat nichts mit dem DOM zu tun, sondern mit JavaScript. Dies bedeutet, dass solange kein Verweis auf eine Variable / ein Objekt vorhanden ist, dieses Objekt nicht als Garbage Collection erfasst wird. Sobald alle Methoden / Funktionen / DOM-Elemente, die das Objekt "verwenden", Müll gesammelt werden, ist es auch das Objekt.

Es geht im Grunde nur um Speicherbereinigung / Speicherlecks. Es betrifft nur das DOM, da alles, was im DOM ist, "benutzt" wird und beibehalten werden sollte.

  

gelöste DOM-Knoten, hängende DOM-Knoten

"Out of DOM node" und "detached DOM node" wären das Gleiche, und ich vermute "hängender DOM node" obwohl ich noch nie davon gehört habe. Sie alle scheinen Knoten zu implizieren, die aus dem DOM entfernt wurden, aber immer noch durch JavaScript im Speicher gehalten werden.

Und diese Konzepte sind nicht neu, JavaScript hat das schon lange gemacht. Wenn sie neu erscheinen, dann deshalb, weil die Leute mehr über sie reden.

  

Schatten-DOM, Dokumentfragmente usw.

Diese sind eindeutig in den HTML-DOM-Spezifikationen angegeben. Eine schnelle Antwort ist, dass Shadow DOM wieder eine JavaScript-Sache ist, und es geht darum, Ihren Elementen einen geschützten Bereich zu geben sowie Inhalte vom Rendering zu trennen. Scheint verwirrend? Das ist, weil das eine völlig neue Frage an sich ist, und Sie sollten wirklich darüber nachlesen.

Einige Links zum Einstieg:

Ссылка
Ссылка
Ссылка
Ссылка

    
Jan 05.07.2015, 05:19
quelle

Tags und Links