JavaScript gehört zu den großen drei des Webhostings: Neben HTML (Seitenstruktur) und CSS (Darstellung) bietet die objektorientierte Programmiersprache Dynamisierung von Inhalten. Aber JavaScript ist nicht nur im Kontext der Seitengestaltung einsetzbar. Auch serverseitige Anwendungen können mit JavaScript kontrolliert werden.
Ursprünge von JavaScript
Trotz des Namens hat JavaScript nur wenig mit Java zu tun. Ursprünglich sollte die Skriptsprache LiveScript heißen und wurde von Netscape für die Interaktion des Netscape Navigators mit Java-Applets (Java-Clientanwendungen) entwickelt. Als eigentlich proprietäre Software stellte JavaScript einen Konkurrenzfaktor für Firmen wie Microsoft dar. Diese antworteten auf die Entwicklung von JavaScript mit eigenen Lösungen wie der Skriptsprache JScript. Über die Zeit setzte sich JavaScript jedoch als primäre, inzwischen von allen Browsern unterstützte Skriptsprache für clientseitige und (neben php) serverseitige Dynamisierung durch.
Clientseitige Dynamisierung
Die wohl meistgenutzte Funktion von JavaScript ist die Möglichkeit der clientseitigen Dynamisierung. Bei dem Client handelt es sich um den Webbrowser. Mit clientseitiger Dynamisierung ist gemeint, dass die im Client konkret angezeigten Inhalte manipuliert werden. HTML ist die statische Beschreibung der Struktur eines Webauftritts, das sogenannte Document Object Model (DOM). Während CSS (Cascading Style Sheets) für die separate Ausgestaltung dieses “Skeletts” genutzt wird, bietet JavaScript die Möglichkeit des Verschiebens, Löschens oder Hinzufügens von HTML-Elementen.
Diese DOM-Manipulation (DOM-Scripting) kann auf vielseitige Arten und Weisen eingesetzt werden. Über sogenannte Event-Handler werden Funktionen zunächst an bestimmte Ereignisse gebunden. Dies können Klicks durch den User, Zeitpunkte oder auch das Laden der Internetseite sein. Über die im HTML an Elemente vergebenen ID’s können dann ereignisbasiert Veränderungen ausgelöst werden. Dies kann von der Programmierung einfacher, dynamischer Formulare oder Tabellenfiltern hin zur Einbettung von Video-Playern oder komplexer, dynamischer Grafik alles umfassen.
JQuery: Das unkompliziertere JavaScript
JavaScript ist ein Beispiel für objektorientierte Programmiersprachen. Als solche ist die Einstiegsschwelle für unerfahrene Webdesigner relativ hoch. Ohne die Funktionalität von JavaScript (groß) einzuschränken, bietet die JavaScript-Library JQuery eine vereinfachte Syntax, die die gebräuchlichsten Anwendungsfälle auf schnelle und einfache Weise ermöglicht. Während JavaScript mit der Definition von Prototypen (statt Klassen), Instanzen (konkrete Objekte) und Methoden (an Objekte gebundene Funktionen) eine ähnliche Komplexität und Wandelbarkeit wie etwa Java oder Python bietet, schränkt JQuery das Vokabular und die Strukturen ein. Die Befehle sind schachtelbar aufgebaut, so dass der Aufbau recht schnell verstanden werden kann. Sofern es daher nicht um komplexe, unübliche Anwendungen geht, existiert mit großer Wahrscheinlichkeit eine einfache Lösung in JQuery.
Serverseitige Dynamisierung: AJAX und Node.js
Neben DOM-Manipulation wird JavaScript auch zur Kommunikation mit Servern, etwa Datenbankabfragen, eingesetzt. Seit 2009 gibt es node.js, ein Framework für die serverseitige Dynamisierung mit JavaScript. Schon vor 2009 war das möglich, aber node.js ermöglicht eine einfachere Einbindung. Für JavaScript-Programmierer ist dies ein Vorteil, da dann nicht mehr auf andere Sprachen wie php zurückgegriffen werden muss. Daneben ermöglicht node.js aber auch eine Parallelisierung von Prozessen. Dies ist ein Vorteil, da zuviele von derlei sogenannten Threads zu einem Stillstand führen können. Mit node.js laufen Anfragen über einen einzigen Thread, was die Performance wesentlich erhöhen kann.
Node.js ist ein Beispiel für die Möglichkeiten von AJAX. Das Akronym steht für ein Vorgehen namens Asynchronous JavaScript and XML. Dieses Prinzip ermöglicht es, Inhalte von Servern abzufragen ohne die gesamte Seite neu laden zu müssen. Für viele Webangebote wie YouTube wäre ein komplettes Neuladen nach Videoanfragen oder dem Laden der Kommentare ein großer Nachteil. AJAX ist dank des asynchronen Verarbeitens, wie oben für Node.js erklärt, auch eine Lösung für das Problem sich anhäufender Anfragen.
Einbindung von JavaScript
Die grundlegende Einbindung von JavaScript in Web-Angebote funktioniert genau so, wie die Verbindung mit CSS-Dateien. Hierfür gibt es also zwei Möglichkeiten: Einerseits kann JavaScript im Head oder andererseits im Body des HTML-Dokuments eingesetzt werden.