{"id":476958,"date":"2023-08-09T09:05:36","date_gmt":"2023-08-09T09:05:36","guid":{"rendered":""},"modified":"2023-09-05T11:13:45","modified_gmt":"2023-09-05T11:13:45","slug":"document-object-model-dom","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/de\/wiki\/document-object-model-dom\/","title":{"rendered":"Dokumentobjektmodell (DOM)"},"content":{"rendered":"<p>Das Document Object Model (DOM) ist eine wichtige Schnittstelle, die es Entwicklern erm\u00f6glicht, mithilfe von Skriptsprachen wie JavaScript mit Webdokumenten zu interagieren. Es stellt eine strukturierte, hierarchische und logische Ansicht des Inhalts eines Webdokuments, wie HTML oder XML, als baumartige Struktur dar.<\/p>\n<h2>Die Entstehung des Document Object Model (DOM)<\/h2>\n<p>Das Konzept des DOM entstand erstmals Mitte bis Ende der 1990er Jahre, als der Bedarf nach mehr interaktiven Webinhalten bestand. Mit dem Aufkommen dynamischer Websites und der weit verbreiteten Verwendung von JavaScript entstand der Bedarf nach einem Modell, das es Skripten erm\u00f6glichte, die Dokumentstruktur, den Stil und den Inhalt zu \u00e4ndern. Das World Wide Web Consortium (W3C) \u00fcbernahm die Aufgabe, zu diesem Zweck eine standardisierte API zu erstellen, was zur Entwicklung des DOM f\u00fchrte.<\/p>\n<p>Die erste Standard-DOM-Ebene, DOM Level 1, wurde 1998 vom W3C eingef\u00fchrt. Sie bot ein umfassendes Modell f\u00fcr ein komplettes HTML- oder XML-Dokument, einschlie\u00dflich der M\u00f6glichkeit, beliebige Teile des Dokuments zu \u00e4ndern.<\/p>\n<h2>Erweitern des Document Object Model (DOM)<\/h2>\n<p>Der DOM ist im Wesentlichen eine plattform- und sprachneutrale Schnittstelle, die es Programmen und Skripten erm\u00f6glicht, dynamisch auf Inhalt, Struktur und Stil eines Dokuments zuzugreifen und diese zu aktualisieren.<\/p>\n<p>Das DOM ist in einer Hierarchie von Knoten organisiert, von denen jeder einen Teil des Dokuments darstellt, z. B. Elemente, Attribute und Text. Diese logische Baumstruktur erleichtert die Navigation und Bearbeitung des Dokumentinhalts.<\/p>\n<p>Ein Webdokument wird als Baum von Objekten modelliert, die alle Eigenschaften und Methoden haben und andere Objekte enthalten k\u00f6nnen. Beispielsweise wird ein HTML-Dokument in Objekte umgewandelt, die Elemente wie \u201ebody\u201c, \u201ediv\u201c, \u201espan\u201c und \u201ep\u201c sowie deren Attribute und Textinhalte darstellen.<\/p>\n<h2>Funktionsweise des Document Object Model (DOM)<\/h2>\n<p>Die interne Struktur des DOM ist als Knotenbaum organisiert. Der oberste Knoten ist der <code data-no-translation=\"\">Document<\/code> Knoten, der das gesamte Dokument darstellt. Darunter befindet sich der <code data-no-translation=\"\">Element<\/code> Knoten entsprechen den HTML-Elementen auf der Seite. <code data-no-translation=\"\">Attribute<\/code> Knoten enthalten die Attribute der Elemente und <code data-no-translation=\"\">Text<\/code> Knoten enthalten den Textinhalt von Elementen.<\/p>\n<p>Diese hierarchische Struktur erm\u00f6glicht Entwicklern, im Dokumentbaum zu navigieren und API-Methoden zum Ausw\u00e4hlen, Erstellen, \u00c4ndern oder L\u00f6schen von Knoten zu verwenden.<\/p>\n<p>Hier ist ein Beispiel, wie ein HTML-Dokument als DOM-Baum aussehen w\u00fcrde:<\/p>\n<pre><div class=\"bg-black rounded-md mb-4\"><div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\"><span>mathematica<\/span><button class=\"flex ml-auto gap-2\"><svg stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" viewbox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"h-4 w-4\" height=\"1em\" width=\"1em\" ><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"><\/path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"><\/rect><\/svg>Code kopieren<\/button><\/div><div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-mathematica\" data-no-translation=\"\"><span class=\"hljs-variable\">Document<\/span>\n    \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">html<\/span>\n        \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">head<\/span>\n            \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">title<\/span>\n                \u21b3 <span class=\"hljs-built_in\">Text<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-string\">\"Title of the Document\"<\/span>\n        \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">body<\/span>\n            \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">h1<\/span>\n                \u21b3 <span class=\"hljs-built_in\">Text<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-string\">\"Hello, world!\"<\/span>\n            \u21b3 <span class=\"hljs-built_in\">Element<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-variable\">p<\/span>\n                \u21b3 <span class=\"hljs-built_in\">Text<\/span><span class=\"hljs-operator\">:<\/span> <span class=\"hljs-string\">\"This is a paragraph.\"<\/span>\n<\/code><\/div><\/div><\/pre>\n<h2>Hauptmerkmale des Document Object Model (DOM)<\/h2>\n<ol>\n<li>\n<p><strong>Baumstruktur<\/strong>: Das DOM stellt ein Dokument in einer logischen Baumstruktur dar, was die Navigation, Auswahl und Bearbeitung einfach und intuitiv macht.<\/p>\n<\/li>\n<li>\n<p><strong>Sprachneutral<\/strong>: Der DOM ist nicht an eine bestimmte Programmiersprache gebunden. Es handelt sich um eine Konvention zur Darstellung von und Interaktion mit Objekten in HTML, XML und anderen Dokumenttypen.<\/p>\n<\/li>\n<li>\n<p><strong>Dynamischer Zugriff und Aktualisierung<\/strong>: Das DOM erm\u00f6glicht Programmen, dynamisch auf Inhalt, Struktur und Stil eines Dokuments zuzugreifen und diese zu aktualisieren.<\/p>\n<\/li>\n<li>\n<p><strong>Standardisiert<\/strong>: Der DOM ist ein W3C-Standard, der seine breite Akzeptanz und Kompatibilit\u00e4t zwischen verschiedenen Browsern und Plattformen gew\u00e4hrleistet.<\/p>\n<\/li>\n<\/ol>\n<h2>Typen des Document Object Model (DOM)<\/h2>\n<p>Die DOM-Spezifikation ist in mehrere \u201eEbenen\u201c und \u201eModule\u201c unterteilt, von denen jedes dem vorherigen Funktionen und Funktionalit\u00e4ten hinzuf\u00fcgt. Zu den wichtigsten Typen geh\u00f6ren:<\/p>\n<table>\n<thead>\n<tr>\n<th>DOM-Ebene\/Typ<\/th>\n<th>Kurze Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>DOM-Ebene 1<\/strong><\/td>\n<td>Bietet ein Basismodell f\u00fcr ganze HTML- oder XML-Dokumente, einschlie\u00dflich Methoden zum Bearbeiten von Elementen und ihren Attributen.<\/td>\n<\/tr>\n<tr>\n<td><strong>DOM-Ebene 2<\/strong><\/td>\n<td>Eingef\u00fchrte Funktionen wie Namespace-Behandlung, ein Style-Modul mit CSS-Unterst\u00fctzung und mehrere neue Schnittstellen zum Umgang mit Tabellen, Ereignissen usw.<\/td>\n<\/tr>\n<tr>\n<td><strong>DOM-Ebene 3<\/strong><\/td>\n<td>Unterst\u00fctzung f\u00fcr XPath und Tastaturereignisbehandlung hinzugef\u00fcgt, Schnittstellen zum Laden und Speichern von Dokumenten eingef\u00fchrt.<\/td>\n<\/tr>\n<tr>\n<td><strong>DOM-Ebene 4<\/strong><\/td>\n<td>Durch Reduzierung der Abh\u00e4ngigkeiten wurde der DOM-Kern vereinfacht, Promises f\u00fcr asynchrone Vorg\u00e4nge eingef\u00fchrt und weitere Funktionen wie \u00fcbergeordnete Funktionen f\u00fcr eine einfachere Knotenmanipulation hinzugef\u00fcgt.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Verwenden des Document Object Model (DOM)<\/h2>\n<p>Das DOM wird jedes Mal verwendet, wenn eine Webseite mit JavaScript bearbeitet wird. Es ist die grundlegende API f\u00fcr zahlreiche Webtechnologien.<\/p>\n<p>Entwickler verwenden das DOM, um das Erscheinungsbild und den Inhalt einer Webseite dynamisch zu \u00e4ndern, ohne dass ein vollst\u00e4ndiges Neuladen der Seite erforderlich ist, wodurch interaktive und reaktionsf\u00e4hige Benutzeroberfl\u00e4chen erm\u00f6glicht werden.<\/p>\n<p>Trotz seiner Leistungsf\u00e4higkeit ist der DOM nicht ohne Probleme. Er kann langsam werden, wenn er nicht sorgf\u00e4ltig verwendet wird, insbesondere bei gro\u00dfen oder komplexen Webdokumenten. Schlecht optimierte DOM-Manipulation kann zu langsamer Seitendarstellung und nicht reagierenden Schnittstellen f\u00fchren. Um dies zu beheben, verwenden Entwickler h\u00e4ufig Bibliotheken oder Frameworks wie jQuery, React oder Vue.js, die APIs auf h\u00f6herer Ebene f\u00fcr eine effiziente DOM-Manipulation bieten.<\/p>\n<h2>DOM-Eigenschaften und Vergleich mit \u00e4hnlichen Begriffen<\/h2>\n<table>\n<thead>\n<tr>\n<th>Begriff<\/th>\n<th>Beschreibung<\/th>\n<th>Vergleich<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>DOM<\/strong><\/td>\n<td>Eine API f\u00fcr HTML- und XML-Dokumente, die eine strukturelle Darstellung des Dokuments bereitstellt und es Entwicklern erm\u00f6glicht, dessen Inhalt und visuelle Darstellung zu bearbeiten.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><strong>CSSOM<\/strong><\/td>\n<td>Das CSS-Objektmodell (CSSOM) ist eine Karte von CSS-Stilen, \u00e4hnlich dem DOM, aber speziell f\u00fcr CSS. Es erm\u00f6glicht die Manipulation von Stylesheets und Stilen, die auf das DOM angewendet werden.<\/td>\n<td>W\u00e4hrend sich DOM auf die Dokumentstruktur konzentriert, konzentriert sich CSSOM auf die Pr\u00e4sentationsschicht.<\/td>\n<\/tr>\n<tr>\n<td><strong>Schatten-DOM<\/strong><\/td>\n<td>Ein Mechanismus zum Einkapseln von Teilen eines DOM-Baums f\u00fcr die Implementierung von Webkomponenten. Er isoliert Teile des DOM, um sie vor dem Hauptdokumentbaum zu \u201everbergen\u201c.<\/td>\n<td>Im Gegensatz zum regul\u00e4ren DOM bietet Shadow DOM Stil- und Verhaltenskapselung.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Zukunftsperspektiven im Zusammenhang mit dem Document Object Model (DOM)<\/h2>\n<p>Da sich Webtechnologien st\u00e4ndig weiterentwickeln, wird sich auch die DOM-API wahrscheinlich erweitern und verbessern. Zu den m\u00f6glichen zuk\u00fcnftigen Entwicklungen geh\u00f6ren effizientere Methoden zur Manipulation des DOM, eine verbesserte Integration mit neuen Webstandards und die fortlaufende Weiterentwicklung der HTML-Spezifikation selbst.<\/p>\n<p>Eine interessante, laufende Entwicklung ist die schrittweise Einf\u00fchrung von Webkomponenten, die die Erstellung wiederverwendbarer, gekapselter HTML-Tags erm\u00f6glicht. Dies ist eng mit dem Shadow DOM verkn\u00fcpft, das eine Methode zum Kapseln von DOM-Elementen bietet.<\/p>\n<h2>Document Object Model (DOM) und Proxyserver<\/h2>\n<p>Ein Proxyserver ist ein Vermittler, der Anfragen und Antworten zwischen einem Client und einem Server weiterleitet. W\u00e4hrend sich das DOM haupts\u00e4chlich mit der Strukturierung und Bearbeitung von Webdokumenten auf der Clientseite befasst, arbeiten Proxyserver auf Netzwerkebene.<\/p>\n<p>Die Schnittmenge der beiden findet sich jedoch in Szenarien, in denen ein Proxyserver den Inhalt eines Webdokuments \u00e4ndern k\u00f6nnte. Beispielsweise kann ein Proxyserver DOM-Elemente in einer Webseite hinzuf\u00fcgen, entfernen oder \u00e4ndern, bevor diese den Client erreicht. Dies kann aus verschiedenen Gr\u00fcnden verwendet werden, beispielsweise zum Einf\u00fcgen von Skripts, zum Entfernen unerw\u00fcnschter Elemente oder zum \u00c4ndern von Inhalten zu Lokalisierungs- oder Anpassungszwecken.<\/p>\n<h2>verwandte Links<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\/Introduction\" target=\"_new\" rel=\"noopener nofollow\">MDN-Webdokumente: Dokumentobjektmodell (DOM)<\/a><\/li>\n<li><a href=\"https:\/\/dom.spec.whatwg.org\/\" target=\"_new\" rel=\"noopener nofollow\">W3C DOM-Standard<\/a><\/li>\n<li><a href=\"https:\/\/javascript.info\/dom\" target=\"_new\" rel=\"noopener nofollow\">JavaScript-Info: Das DOM<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/web\/updates\/2018\/09\/inside-browser-part1\" target=\"_new\" rel=\"noopener nofollow\">Google Web-Grundlagen: So funktionieren Browser<\/a><\/li>\n<\/ul>\n<p>Dieser \u00dcberblick soll ein umfassendes Verst\u00e4ndnis des Document Object Model (DOM) vermitteln, seinen Ursprung, seine Funktionsweise, seine Eigenschaften und seine voraussichtliche Entwicklung. Das DOM bleibt ein Eckpfeiler der interaktiven Webentwicklung und wird auch weiterhin eine entscheidende Rolle spielen, wenn sich Webtechnologien weiterentwickeln.<\/p>","protected":false},"featured_media":468251,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-476958","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>Document Object Model (DOM): A Comprehensive Overview<\/mark>","faq_items":[{"question":"What is the Document Object Model (DOM)?","answer":"<p>The Document Object Model (DOM) is an interface that allows developers to interact with web documents using scripting languages like JavaScript. It represents the contents of a web document, such as HTML or XML, in a structured, hierarchical, and logical tree-like structure.<\/p>"},{"question":"When was the Document Object Model (DOM) first introduced?","answer":"<p>The concept of the DOM came into existence in the mid-to-late 1990s, with the World Wide Web Consortium (W3C) introducing the first standard DOM level, DOM Level 1, in 1998.<\/p>"},{"question":"How does the Document Object Model (DOM) work?","answer":"<p>The DOM works by representing a web document in a tree-like structure, with the topmost node being the <code>Document<\/code> node, representing the entire document. Below this, there are <code>Element<\/code> nodes, <code>Attribute<\/code> nodes, and <code>Text<\/code> nodes, each representing elements, attributes, and text within the document. This structure allows developers to navigate the document tree and use API methods to select, create, modify, or delete nodes.<\/p>"},{"question":"What are the key features of the Document Object Model (DOM)?","answer":"<p>The key features of the DOM include its tree-like structure, making it easy to navigate and manipulate; its language-neutrality, making it compatible with any programming language; its dynamic access and update capabilities; and its status as a W3C standard, ensuring widespread acceptance and compatibility.<\/p>"},{"question":"Are there different types of Document Object Model (DOM)?","answer":"<p>Yes, the DOM specification is divided into several \"levels\" and \"modules\", each adding features and functionality to the previous ones. These include DOM Level 1, DOM Level 2, DOM Level 3, and DOM Level 4.<\/p>"},{"question":"How is the Document Object Model (DOM) used?","answer":"<p>The DOM is used to dynamically change the look, feel, and content of a web page without requiring a full page reload. This makes for interactive and responsive user interfaces. However, the DOM can become slow if not used carefully, especially with large or complex web documents.<\/p>"},{"question":"How does the Document Object Model (DOM) relate to proxy servers?","answer":"<p>While the DOM is primarily concerned with the structure and manipulation of web documents on the client-side, proxy servers operate at the network level. However, they intersect when a proxy server modifies the contents of a web document before it reaches the client, such as injecting scripts, removing unwanted elements, or modifying content for localization or customization purposes.<\/p>"},{"question":"What are the future perspectives related to the Document Object Model (DOM)?","answer":"<p>The DOM API is likely to expand and improve as web technologies continue to evolve. Potential future developments include more efficient methods of manipulating the DOM, improved integration with emerging web standards, and the ongoing evolution of the HTML specification itself.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/wiki\/476958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/wiki\/476958\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/media\/468251"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/de\/wp-json\/wp\/v2\/media?parent=476958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}