Nachdem der HTML-Kurs der vergangenen Ausgaben Ihnen die Grundkenntnisse in HTML vermittelt hat, wollen wir das Thema mit einem JavaScript-Kurs vertiefen.
Ziel des Kurses ist die Vermittlung von Grundkenntnissen in JavaScript. Auch wenn diese Sprache oftmals nicht ganz ernst genommen wird, erreichen manche Bücher schon die 600 Seiten Grenze. Aber keine Angst, auch JavaScript ist erlernbar!
JavaScript ist konkurrenzlos. Als Scriptsprache, die direkt für Browser geschrieben wurde, unterstützt sie die Gestaltung von dynamischen Seiten und Interagiert mit dem Browser. Wenn ein Formular abgeschickt wird, kann JavaScript bspw. benutzt werden, um die Eingaben zu überprüfen. Mit JavaScript können auch zwei Frames gleichzeitig geändert werden, womit sich bei sinnvoller Benutzung gute Bedienkonzepte verwirklichen lassen.
Die Sprache stellt keine hohen Anforderungen an den Rechner. Ob Sie nun ein Script auf einem Atari, Mac oder PC ablaufen lassen, macht zwar von der Geschwindigkeit schon einen Unterschied, aber mit JavaScript sollen schließlich keine Action-Spiele oder Raytracing-Programme erstellt werden. Deshalb machen auch Benchmarks nicht wirklich Sinn, da die Bereiche, in denen Geschwindigkeit eine Rolle spielt, von anderen Lösungen besser besetzt sind (Java, Flash). Dies hat natürlich einige Programmierer nicht davon abgehalten, mit JavaScript Action-Spiele zu erstellen.
JavaScript ist eine sehr gutmütige Sprache. Wer C oder Pascal mit ihrer strikten Variablendefinition kennt, wird sich über die etwas laxe Syntax wundern. Auch das abschließende Semikolon ist oft nicht mehr erforderlich.
JS ist nicht die einzige Browserscriptsprache, denn Microsoft führte als Konkurrenz VBScript ein, eine Scriptversion von Visual Basic. Grob gesehen leistet VBS in etwas dasselbe, gestattet aber mehr Zugriffe auf die Hardware, während JavaScript systemnahe Funktionen fehlen. Dadurch ist JavaScript von der Konzeption her sicherer. VBS fand bisher keinen großen Anklang und auch Microsoft verzichtet bisher darauf, die Sprache aggressiv auf dem Markt durchzusetzen.
Als eine der wenigen Web-Technologien ist JavaScript auf praktisch jeder Plattform verfügbar. Ob nun Dreamcast, WebTV, Mac, Unix, Amiga, Acorn, PC oder Atari: es findet sich immer mindestens ein Browser, der JS unterstützt. Für Entwickler ist interessant, das schon lange Open Source-Implementationen von JS im Internet bereit liegen (z.B. SpiderMonkey - http://mozilla.org/js/spidermonkey/).
Eine Seite wird durch JavaScript alleine noch nicht schön. Was nützt ein ausgefeiltes Script, wenn der Rest der Seite nicht erwähnenswert ist? Zwar ist JS auf der Browserebene praktisch konkurrenzlos, aber wer Kenntnisse in Server-seitigen Script-Sprachen hat und diese auf seinem Web-Server auch einsetzen kann, der benutzt für die Überprüfung von Eingaben eher PHP, Perl oder Python. Natürlich können diese Sprachen nur dann eingreifen, wenn eine neue Seite z.B. durch das Abschicken eines Formulars aufgerufen wird, aber dafür ist die Seite dann unabhängig von JS.
Die Gutmütigkeit ist eine weitere Schwäche. Es existiert ein Sprachstandard, der aber durch Erweiterungen und unterschiedliche Firmenphilosophien ausgehöhlt wurde. Einige Browser halten sich strikt an den Standard, während andere bei der Syntax gerne einmal ein Auge zudrücken. Letztlich sieht die Internet-Realität eher so aus, das die Mehrzahl der im Netz kursierenden Scripte nicht Standard-konform ist. Der Surfer ist dadurch eher geneigt, den Programmierern des Browsers die Schuld zu geben. Jeder Browser hat daher eine gewisse Toleranz, aber je nach Browser ist diese unterschiedlich groß.
Das führt zu dem Browserproblem. Es gibt unterschiedliche Versionen von JavaScript und auch die Microsoft-Variante JScript. Der Browser von Netscape liegt bei gleicher Produktversion immer etwas vor dem Internet Explorer, in der aktuellen Version 6.1 wird die JavaScript-Version 1.5 unterstützt. Die schönsten Erweiterungen nützen aber nichts, wenn ein Browser sie nicht kennt. Allgemein unterstützt wird nur JS v1.1. Die Befehle der späteren Versionen sind etwas risikoreicher, da sie nicht oder nur teilweise unterstützt werden. Hinzu kommen noch Hersteller-spezifische Erweiterungen und Besonderheiten einiger Browser, die schon so manchen Web-Programmierer an den Rand der Verzweiflung bringen.
JavaScript ist zwar vom Konzept her relativ sicher, aber dafür besteht eine Gefahr in den Sicherheitslöchern der Browser mit denen sowohl der MSIE als auch Netscape zu kämpfen haben. Dies führt soweit, das nicht wenige Sicherheitsexperten empfehlen, JavaScript auszuschalten. Einige dieser Sicherheitslöcher betreffen nur Windows-Systeme, was natürlich nur dem Mac-Surfer aber nicht dem Mac-Webdesigner etwas nützt.
Beide Sprachen werden immer noch gerne verwechselt. Java ist eine voll ausgewachsene Sprache, mit Sound-, Grafik- und Datei-Befehlen, die erheblich komplexer ist als JavaScript. Im Gegensatz zu JS wird Java vorkompiliert und ist damit in der Ausführung schneller. Trotzdem bleibt dieses Format Plattformunabhängig, solange nicht spezielle Eigenschaften der Hardwareplattform benutzt werden. Durch die Komplexität bedingt, verlangt Java nach mehr Ressourcen. Dafür sind die Einsatzgebiete vielfältiger, selbst Emulationen klassischer Computer laufen dank Java im Web-Browser.
Eine gewisse Ähnlichkeit in der Syntax zwischen Java und JavaScript existiert, ist aber minimal. Wer JS kann, wird mit Java nicht unbedingt gleich viel anfangen können, hilfreicher sind Kenntnisse in C und C++.
So ganz ohne Beziehung sind beide Sprachen dann doch nicht, denn über JavaScript kann auch auf Code im Java-Applet zugegriffen werden.
Mit der Version 2.0 führte Netscape offiziell die Version 1.0 von JavaScript ein, der Browser galt nicht nur dadurch als wahre "Killer-Application" und der IE2.0 wurde kaum wahrgenommen. Erst mit dem MSIE3 zog JS in das Microsoft-Produkt ein. Die Version 1.1 von JS brachte viele neue Befehle und ist in Netscape 3.0 und IE4 verfügbar. Diese JS-Version gilt auch heute als der kleinste gemeinsame Nenner der meisten JavaScript-fähigen Browser. Mit Netscape 4.0 hielt die Version 1.2 Einzug, von der im IE aber nur ein Teil interpretiert wird. Im IE4 findet die Microsoft-Variante JScript ihren Einsatz, die viele Befehle für die Browsererweiterungen des IE beinhaltet. Ein Großteil dieser Erweiterungen zielt auf das dynamische HTML, wobei sich in diesem Punkt die Konzepte von Netscape und Microsoft stark voneinander unterscheiden. Damit beginnt auch die Zeit, in der ganze Code-Blöcke für den jeweiligen Browser umgeschrieben werden müssen.
Die Standardisierung von DHTML durch das W3C und die allmähliche Akzeptanz der Browser-Hersteller machte sich schließlich auch in JavaScript bemerkbar. In Browsern wie Mozilla/Netscape 6 und dem IE 5 kann DHTML auf (fast) die gleiche Weise benutzt werden.
Um JavaScript zu schreiben und zu testen, ist nur ein Texteditor und ein Web-Browser erforderlich. Wenn das ganze später auch noch im Web veröffentlicht werden soll, sollten Sie die Möglichkeit haben, ihre Scripte auf dem IE5 sowie Netscape (4 und 6) zu testen, jeweils in der Mac- und Windows-Version. Die ersten Kursteile sollten aber auf den verschiedenen Browsern keine Probleme bereiten.
Natürlich soll dieser erste Teil des Kurses nicht ohne ein erstes Programmbeispiel beendet werden:
<html>
<head>
<title>Beispiel</title>
<script language="JavaScript">
<!--
alert("Hallo ihr alle!");
//-->
</script>
</head>
</html>
Scripte werden durch das HTML-Tag <script> eingeleitet. Im Tag selber wird die gewünschte Scriptsprache bestimmt. Kennt ein Script-fähiger Browser die durch language angegebene Sprache nicht, wird der Script-Bereich ignoriert. Wo dieser Bereich steht, ist in diesem Beispiel nicht relevant. Nach der Einleitung des Bereichs folgt eine Auskommentierung. Damit soll erreicht werden, das ältere Browser den Script-Bereich überspringen.
Der erste JavaScript-Befehl, alert, bringt eine Hinweisbox mit dem Text "Hallo ihr alle!" auf den Bildschirm.
Das Beispiel ist in Standard-JS geschrieben - wie der Bereich im Internet häufig aussieht, sehen Sie hier:
<script>
alert("Hallo ihr alle!")
</script>
Bitte vergessen Sie die kürzere Version jetzt. Zwar wird diese in den marktbeherrschenden Browsern problemlos funktionieren, aber immer mehr Anwender werden mit einem Nicht-PC-Gerät in das Internet gehen. Diese Geräte sind zumeist mit speziellen Browsern ausgestattet, der nicht beliebig erweitert werden kann, um jede Abweichung vom Standard abzufangen. Hinzu kommen die unzähligen Browser mit einem kleinen Marktanteil. Da durch den Standard keine Nachteile entstehen, sollte man diesen auch befolgen.
Im nächsten Teil des Kurses geht es um Variablen.
Internet-Adressen:
icab.de
netscape.de
microsoft.de
mozilla.com