JavaScript – M+T Pocket . Das Programmier-Handbuch (Office Einzeltitel) [Taschenbuch]

3.2
HTML – Grundlagen

In diesem Buch geht es um JavaScript und das erzwingt die
Auseinandersetzung mit HTML. Zwar soll hier ausdrücklich kein HTML-Buch
erstellt werden. Nichtsdestotrotz ist ein kurzer Exkurs zu HTML und dessen
Hintergründen unumgänglich. Immerhin ist HTML die mit Abstand wichtigste
Technologie im Web. HTML ist die Grundlage aller anderen im WWW verwendeten
Techniken und lässt sich als einzige Technik im Web in einem Browser nie
deaktivieren. Sie ist das Rückgrad aller Vorgänge in einer Webseite. Ohne HTML
geht nichts im Web. Alle (!) anderen Techniken im WWW (auch JavaScript)
verankern sich letztlich irgendwo in einem HTML-Gerüst.

HTML ist – wie der Vorläufer SGML – eine so genannte
Dokument-Beschreibungssprache, mit der die logischen Strukturen eines Dokuments
in plattformunabhängigen Klartext beschrieben werden. Dieser Klartext muss
interpretiert werden, damit aus einer HTML-Klartextdatei das wird, was man als
Webseite kennt. Diesen HTML-Interpreter stellt der Browser zur Verfügung, in
dem HTML-Seiten normalerweise angezeigt werden. HTML ist insbesondere keine (!)
Programmiersprache wie Java und auch keine (!) Scriptsprache wie JavaScript,
Perl oder VBScript. Mit HTML wird auch nicht (!) programmiert (obwohl es häufig
so genannt wird). HTML fehlen sowohl Variablen als auch
Programmfluss-Anweisungen, welche zentrale Bestandteile einer Programmier- bzw.
Scriptsprache sind. Im Grunde gibt ein HTML-Dokumentenformat nur unverbindliche
Empfehlungen an eine interpretierende Darstellungssoftware (ein Browser wie dem
Netscape-Navigator oder Opera), wie eine bestimmte Dokumentenstruktur
darzustellen ist, damit sie dem geplanten Layout und der vorgesehenen
Funktionalität so weit wie möglich entspricht. Es gibt in reinem HTML keine
absolute Darstellungsvorschrift, weswegen sich Darstellungen von HTML-Seiten in
verschiedenen Browsern oft erheblich unterscheiden können. Obwohl vielen Laien
das als eine Schwäche von HTML erscheint, ist es im Grunde genau das Gegenteil.
HTML erlaubt die plattformunabhängige Beschreibung einer grafischen
Dokumentenseite mit einem äußerst geringen Gestaltungsoverhead und einer extrem
kleinen Menge an zu übertragenden Daten. Nur darüber kann in einem – zeitweise
unerträglich – langsamen Netzwerk wie den Internet Information in einer
adäquaten Zeitspanne übermittelt werden.

3.2.1
Kernaspekte von HTML

Wichtigster Aspekt von HTML ist, dass eine HTML-Seite immer
nur Klartext beinhaltet, der auf allen Computerplattformen verstanden werden
kann. Dieser Klartext beschreibt eine logische Dokumentenstruktur mit Text und
Verweisen, aber auch Kapitel, Unterkapitel, Absätze usw. Da von Anfang an ein
in HTML geschriebenes Dokument mit den Texten Grafiken sowie einige weitere
multimediale Elemente (Sound, Video usw.) verknüpfen sollte, mussten
entsprechende Techniken zur Verbindung mit einer Webseite entwickelt werden.
Elemente, die jenseits von Textanweisungen zu sehen sind, werden in einer Webseite
als Referenz auf eine entsprechende externe Datei notiert. Wenn diese in einer
Webseite dargestellt werden soll, muss natürlich die Präsentations-Software
entsprechende Softwaremodule und die Hardware die zugehörigen Komponenten (beispielsweise
eine Soundkarte für akustische Daten) verfügbar haben.

Eine weitere wichtige Eigenschaft von HTML ist, Verbindungen
zu anderen Internet-Diensten in eine Webseite aufnehmen zu können. Diese werden
als Referenz in einer Webseite notiert (der so genannte Hyperlink), weshalb unter der Oberfläche des WWW viele Dienste wie E-Mail oder FTP verfügbar
gemacht werden können (was zu dem Missverständnis vieler Laien beiträgt, das
WWW wäre zum Internet äquivalent).

HTML wurde über die Zeit sowohl offiziell vom W3C, aber auch
von verschiedenen Browserhersteller in die unterschiedlichsten Richtungen
vorangetrieben, so dass sich mittlerweile die verschiedensten
Browser-spezifische Dialekte gebildet haben, unter denen eine Standardisierung
des WWW heute noch krankt. Diese »Hausbefehle« wurden in den jeweiligen
Browsern parallel zu der offiziellen und in fast allen Browsern nur teilweise
unterstützten Standardversion gefeatured. Die Folge ist, dass es neben dem im
Ende 1997 offiziell verabschiedeten und noch immer aktuellen HTML-4-Standard
diverse HTML-Dialekte gibt, deren Spezialanweisungen jeweils nur von bestimmten
Browsern verstanden werden. Dazu kommt, dass im Grunde fast alle
Browser-Hersteller auch immer nur das vom offiziellen Standard umsetzen, was
ihnen passt und das weglassen, was ihnen nicht bequem erscheint. Das gilt
leider nicht nur für HTML, sondern auch für viele andere Techniken im Web wie
Style-Sheets, aber auch mit Einschränkungen für JavaScript.

3.2.2
Schwächen von HTML

HTML ist für komplexere Sitaution im Web in alle Richtungen
beschränkt und benötigt diverse Ergänzungen, um diese Einschränkungen zu
überwinden. Im einzelnen kann man die Schwächen (wobei das gar nicht so negativ
klingen soll) von HTML so auflisten (ohne Anspruch auf Vollständigkeit):

Layout, Inhalt und Logik einer aus reinem HTML aufgebauten
Webseite sind verwoben. Eine Trennung macht aus Gründen von Wartbarkeit, Größe
von Webseiten, Wiederverwendbarkeit von Elementen, Übersichtlichkeit und vielem
mehr Sinn. Nur das, was den Inhalt selbst betrifft oder nicht aus HTML
herausoperiert werden kann, läßt man durch HTML darstellen. Der Rest wird mit
anderen Techniken wie Scripten und Style-Sheets (Formatvorlagen) erledigt,
soweit es möglich ist.

Darstellungen können (s.o.) mit HTML nur in sehr weit
interpretierbarem Rahmen beschrieben werden. Die Plattform des Anwenders und
auch er selbst kann das Layout einer Webseite extrem weitreichend beeinflussen.
Obwohl es der Philosophie des Webs zuwider läuft, wird auf immer mehr Webseiten
eine genauere Festlegung des Layouts versucht. Sofern solch eine weitergehende
Festlegung des Layouts gewünscht wird, liefert HTML dazu keine Werkzeuge. Man
muss auf ergänzende Techniken zurückgreifen. Style-Sheets liefern einen Ansatz
dazu.

Es gibt in HTML keinerlei Möglichkeit, solche Dinge im Rahmen
einer Webseite zu erledigen, die eine Folge von Programmschritten notwendig
machen. HTML ist explizit keine Programmiersprache und bietet nicht einmal im
Ansatz solche Möglichkeiten. Es ist etwa nicht möglich, im Prinzip beim
Anwender bereits durchzuführende Aktionen wie das Überprüfen, ob ein
Webformular vollständig ausgefüllt ist, zu realisieren. Hier bieten sich
Scripttechnologien wie JavaScript, aber auch noch mächtigere Techniken wie Java
als Erweiterung des HTML-Codes an.

Interaktion (d.h. die Reaktion auf Aktionen des Besuchers einer
Webseite) ist mit reinem HTML nur sehr eingeschränkt und mit einem sehr großen
Aufwand möglich. Zwar gibt es bei HTML die Unterstützung für einen Mechanismus,
den man CGI (Common Gateway Interface) nennt. Dieser bietet die Möglichkeit, im
Rahmen des Browsers erfaßte Daten (beispielsweise über ein HTML-Formular, aber
auch die Position des Mauszeigers) zu einem Server zu schicken. Dieser leitet
diese Daten zu einem Server-seitigen Programm/Script weiter, wo sie verarbeitet
werden. Anschließend geht die Antwort zurück zum Client. So eine Vorgehensweise
hat zahlreiche Nachteile. So vergeht viel Zeit, bis eine Antwort wieder beim
Anwender ist, die Kommunikationswege und der Server werden belastet und
gleichzeitig liegen Ressourcen beim Anwenderrechner brach. Gerade bei
fehlerhaften Daten ist es effektiver, wenn der Fehler bereits beim vor dem
Abschicken zum Server bemerkt werden würde. Hier bieten Scripttechnologieen wie
JavaScript die ideale Ergänzung.

HTML kann keine Datenformate definieren. Das bedeutet im
einfachsten Fall, dass ein Anwender in ein Formularfeld auch Text eintragen
kann, obwohl dort Zahlen verlangt werden. HTML bietet dazu keine
Kontrollmechanismen. Aber es ist auch unmöglich, eigene Datenformate
festzulegen, was beim Austausch von vielen Geschäftsanwendungen notwendig ist.
Scripte und XML (Extensible Markup Language) bieten hier die Erweiterung. XML hat ebenfalls seine Wurzeln bei SGML und ist ein Versuch, SGML und HTML
auf einem gemeinsamen Nenner zu vereinen. Genau genommen ist XML eine
sogenannte Metasprache, mit deren Hilfe Sie eine eigne, neue
Dokumentenbeschreibungssprache definieren können. Damit läßt sich die
Leistungsfähigkeit von HTML erheblich erweitern.

Mehr zu HTML finden Sie im Anhang in Form tabellarischer
Angaben der zentralen Elemente.