Javascript ist aus aktuellen Webseite kaum weg zudenken. Dynamische Inhalte wie Overlays, nachladende Inhalte, sortierbare Listen und Tabellen, Drag & Drop und Animationen können die Funktionen von statischen Webseiten erweitern und dem User die Benutzung vereinfachen.

Inzwischen gibt es zahlreiche Open-Source Javascript-Frameworks, angefangen von (Low-Level) Frameworks die bestimmte Helferfunktionen bereitstellen bis hin zu umfassenderen Bibliotheken die sich auf die Erstellung von Webanwendungen mit komplexen grafischen Interfaces spezialisieren, die Desktopanwendungen ähneln (RIAs = Rich Internet Applications).

Die Low-Level Frameworks enthalten sämtliche Funktionen zum Modifizieren von DOM- Elementen über Animationen, angepassten Elementen wie Checkboxen, Slidern und Dropdownmenüs bis zu AJAX-Funktionen und mehr.

Die Verwendung eines solchen Frameworks kann gerade bei komplexeren Anforderungen die Entwicklungszeiten und die damit verbundenen Kosten reduzieren. Cross-Browser Funktionalität für die gängigen aktuellen  Browser ist ein weiterer Vorteil der Frameworks.

Für ein Projekt sollte dem Umfang und der Komplexität entsprechend ein passendes Javascript-Framework ausgewählt werden. Bei kleineren Projekten können einfache selbst geschriebene Skripte schneller und Platz sparender sein als die Verwendung eines großen und für diesen Zweck überdimensionierten Frameworks.

Frameworks erleichtern das Erstellen von dynamischen Webinhalten meist ohne tiefere Kenntnisse der Skriptsprache vorauszusetzen. Bei komplexeren Webanwendungen sind fundierte Javascript-Kenntnisse trotz der Verwendung eines Frameworks unumgänglich um möglichst effizienten Code zu schreiben.

Einige der häufig verwendeten Low-Level Javascript-Frameworks und deren Merkmale sind:

JQuery

  • gepackt geringe Dateigröße
  • einfaches Selektieren von DOM-Elementen, CSS3-Unterstützung
  • Verkettung von Funktionen (Chaining)
  • Event-Funktionen
  • Funktionalität leicht durch Plugins erweiterbar, viele bereits vorhandene Plugins verfügbar
  • kann ohne Kompatibilitätsprobleme parallel zu anderen Frameworks verwendet werden
  • Lizenz: MIT, GPL

MooTools

  • modular und objektorientiert
  • Verkettung von Funktionen (Chaining)
  • kann durch Module & Plugins erweitert werden
  • visuelle Effekte ähnlich Flash möglich
  • Lizenz: MIT

Prototype & Scriptaculous

  • eine der ersten größeren Frameworks
  • umfangreiche Funktionen
  • unterstützt Klassen und klassenbasierte Objekte
  • zahlreiche Plugins bereits vorhanden
  • Scriptaculous erweitert Prototype um visuelle Effekte und Animationen wie beispielsweise Drag und Drop
  • Lizenz: MIT(Quellcode) und CC BY-SA (Dokumentantion)

MochiKit

  • geringe Größe
  • Idee basierend auf Phython, C++
  • eigener Namespace und somit keine Kompatibilitätsprobleme mit anderen Frameworks
  • Datums-Funktionen, Logging, Event-Funktionen, Visuelle Effekte, Drag & Drop
  • Lizenz: MIT oder Academic Free License, v2.1

Als High-Level Frameworks kann man die folgenden Frameworks bezeichnen:

YUI (Yahoo! User Interface)

  • mächtiges skalierbares gut dokumentiertes Framework
  • Unter anderem spezialisiert auf Funktionen für GUIs, Navigation, Tooltipps, Kalender, Drag & Drop
  • Plugins und Widgets verfügbar
  • YUI Compressor zum Packen von Javascript Code
  • Lizenz: BSD

Dojo

  • Modular
  • sehr umfangreiche Funktionsvielfalt
  • Event Management
  • Vorgefertigte Widgets
  • server- und clientseitige Datenspeicherung
  • Lizenz: Academic Free License

Ext JS

  • Ursprüngliche Erweiterung von YUI, dann eigenständig
  • Geeignet für GUIs (Layouts, Grids, Tabellenaktionen, Template, Navigation)
  • Lizenz: GPL-Lizenz für Open-Source Projekte, kommerzielle Lizenzen für andere Projekte

GWT (Google Web Toolkit)

  • AJAX-Entwicklung
  • Kompiliert Java-Code nach Javascript
  • Lizenz: LGPL v3.0

QooXDoo

  • Spezialisiert auf grafische Benutzeroberflächen für RIAs unter der Verwendung von AJAX
  • Internationalisierung, Unit Testing
  • Single-Language Framework, Keine HTML, CSS Kenntnisse notwendig
  • Lizenz: LGPL/EPL