Original-URL des Artikels: https://www.golem.de/news/web-components-html-elemente-selber-bauen-1305-99318.html    Veröffentlicht: 17.05.2013 12:08    Kurz-URL: https://glm.io/99318

Web Components

HTML-Elemente selber bauen

Mit Web Components, die derzeit vom W3C standardisiert werden, kann sich jeder seine eigenen HTML-Elemente bauen - samt Aussehen und Logik - und sie wie Standardelemente in HTML-Dokumenten nutzen. Mit Googles neuer Bibliothek Polymer funktioniert das auch in den heute verfügbaren Browsern.

Web Components gehören zu den interessantesten neuen Webtechniken, denn sie haben das Potenzial, die Entwicklung von Web-Apps enorm zu vereinfachen und zu beschleunigen. Damit kann jeder seine eigenen, komplexen HTML-Elemente selbst bauen oder von anderen erschaffene Elemente in der eigenen App oder Website nutzen. Möglich ist alles, was sich mit HTML, CSS und Javascript umsetzen lässt, von einer einfachen Überschrift mit fest definiertem Aussehen über einen Videoplayer bis hin zu einem PDF-Tag, das eine entsprechende Datei im Browser mittels pdf.js rendert. Auch komplette Applikationen lassen sich in Form eines solchen Tags einfügen.

Vieles, was heute über Javascript-Bibliotheken abgewickelt wird, könnte künftig in Form einzelner Webkomponenten umgesetzt werden. Das verringert Abhängigkeiten und sorgt für mehr Flexibilität. Bis die dafür notwendigen Webstandards aber verabschiedet, in Browsern umgesetzt und diese bei ausreichend Nutzern installiert sind, wird aber noch einige Zeit vergehen. Google hat daher mit Polymer eine Bibliothek entwickelt, die die Nutzung von Webkomponenten schon heute ermöglicht und dazu je nach den im Browser vorhandenen Funktionen die fehlenden Teile ergänzt. Damit lassen sich Web-Apps deutlich schneller entwickeln.

Die Technik hinter Web Components

Für Web Components werden verschiedene Techniken benötigt, die in einzelnen Spezifikationen von W3C und Browserherstellern derzeit im Rahmen erarbeitet werden. Einige davon sind schon recht weit und ganz oder teilweise in Browsern umgesetzt, andere stehen noch ganz am Anfang ihrer Entwicklung. Zu den wichtigsten Techniken gehören HTML Imports, Custom Elements und Shadow DOM. Hinzu kommen Model Driven Views. Dabei handelt es sich bisher aber nur um eine Idee von Google.

HTML Imports und Custom Elements

HTML Imports ermöglichen es, HTML-Dokumente in HTML-Dokumenten zu verwenden und so HTML-Schnipsel wiederzuverwenden. Es handelt sich also um HTML-Code, der über einen Import im Kopf einer HTML-Datei eingebunden wird und unter einer beliebigen URL abgerufen werden kann.

Dabei kann es sich dann um sogenannte Custom Elements handeln, also selbsterstellte HTML-Elemente. Diese werden immer mit einem Element-Tag umklammert und können neben HTML auch CSS zur Gestaltung des Aussehens und Javascript-Code zur Beschreibung der Logik umfassen. Dies sind also die eigentlichen Bausteine, die die selbsterzeugten HTML-Tags ausfüllen. Beispielsweise kann ein Tag namens definiert werden, das zur Darstellung eines Superbuttons führt. Wie dieser aussieht und was er tut, ist im Element-Code festgelegt.

Das Shadow DOM

Das Shadow DOM sorgt dafür, dass sich die selbstgebauten Elemente nicht gegenseitig stören oder die Website beeinflussen. Es sorgt für eine Kapselung, indem versteckte DOM-Unterzweige angelegt werden, die hinter sogenannten Schattenwurzeln (Shadow Roots) liegen. Jedes Element hat also sein eigenes kleines DOM, in dem es abgekapselt von allen anderen Elementen liegt.

Diesen Ansatz nutzen Browser schon heute, um ihre eigenen Elemente, die zunehmend mit Webtechnik umgesetzt sind, zu kapseln. Beispielsweise sind die Bedienungselemente, die Browser bei Videos über das HTML5-Video-Tag einblenden, selbst mit HTML, CSS und Javascript umgesetzt.

Shadow DOM stellt dabei Methoden zur Verfügung, mit denen sich funktionale Barrieren zwischen den einzelnen DOM-Zweigen einziehen lassen. Zugleich stellt das Shadow DOM aber auch Möglichkeiten zur Interaktion dieser DOM-Zweige her.

Model Driven Views

Google schlägt darüber hinaus Model Driven Views vor, um das User Interface eines HTML-Dokuments oder einer Web-App vom verwendeten Datenmodell zu trennen. Änderungen am Modell sollen so automatisch im DOM reflektiert werden und Nutzereingaben direkt im Datenmodell landen. So sollen sich die einzelnen Elemente leicht miteinander verknüpfen lassen, damit sich beispielsweise der Inhalt eines Elementes verändert, wenn ein Nutzer ein anderes Tab in einer Tab-Leiste auswählt, die ihrerseits als einzelnes Custom-Element umgesetzt wurde.

Auf der Entwicklerkonferenz Google I/O hat Google mit Polymer eine neue Javascript-Bibliothek vorgestellt, die viele der für Web Components notwendigen Funktionen in modernen Browsern emuliert.

Polymer

Polymer ist also ein sogenanntes Polyfill für Web Components, und je mehr der dafür notwendigen Techniken ein Browser unterstützt, je weniger wird mittels Javascript nachgebildet.

Dabei basiert Polymer auf dem grundlegenden Prinzip, alles als Komponenten zu betrachten und diese strikt zu kapseln. So soll es mit Polymer möglich sein, skalierbare und gut wartbare Applikationen zu entwickeln, deren einzelne Komponenten sich auch dann nicht in die Quere kommen, wenn sie aus unterschiedlichen Javascript-Frameworks stammen.

So sind alle Polymer-Ressourcen als Komponenten umgesetzt, selbst diejenigen, die nicht sichtbar sind. Um mit Polymer eine App umzusetzen, müssen also neue Komponenten geschaffen oder in Polymer bereits integrierte Komponenten zusammengesetzt werden.

Letztendlich sollen sich Apps so mit möglichst wenigen Zeilen Code umsetzen lassen, da alles, was mehrfach auftritt, in Form von wiederverwendbaren Komponenten umgesetzt wird, die Polymer selbst verwaltet und in die Browserplattform einfügt. Entwickler haben dabei die Möglichkeit, nur die für sie interessanten Polymer-Elemente zu verwenden.

Polymer ist noch in einer sehr frühen Phase seiner Entwicklung. Googles Entwickler sprechen von einem Pre-Alpha-Stadium, sehen in dem Ansatz aber großes Potenzial. Auf Browserseiten sollen alle großen modernen Browser unterstützt werden, also neben Googles eigenen Browsern Chrome und Chrome für Android auch Firefox, Internet Explorer und Safari.

Details, Code-Beispiele und eine umfangreiche Dokumentation zu Polymer finden sich unter polymer-project.org. Der Polymer-Quellcode ist bei Github zu finden.

Mozilla arbeitet mit X-Tags ebenfalls an einer Polyfill-Bibliothek, die Custom-Elements in heutigen Browsern verfügbar macht. X-Tags und Polymer sind zwar unabhängig voneinander, die Entwickler tauschen sich laut Google aber aktiv aus. So funktionieren X-Tag-Komponten auch mit Polymer.  (ji)


Verwandte Artikel:
Web Components: UI-Bibliothek für Googles Dart   
(19.12.2012, https://glm.io/96451 )
Polymer: Ein Chip, der sich selbst zerstört   
(13.02.2017, https://glm.io/126141 )
Chrome 25 Beta: Browser hört aufs Wort   
(15.01.2013, https://glm.io/96915 )
Forschung: Selbstheilende Kabel aus flüssigem Metall   
(25.01.2013, https://glm.io/97141 )
Digitalfotografie: Beschichtung macht Bildsensoren lichtempfindlicher   
(22.01.2013, https://glm.io/97078 )

© 1997–2019 Golem.de, https://www.golem.de/