Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-859-1
gp Kapitel 33 JavaScript-Bibliotheken
  gp 33.1 Prototype
  gp 33.2 script.aculo.us
  gp 33.3 Weitere Bibliotheken

Die meisten Leser stecken ihre Bücher in die Bibliothek, die meisten Schriftsteller stecken ihre Bibliothek in ihre Bücher. – Nicholas Chamfort

Kapitel 33 JavaScript-Bibliotheken

Wenn man so die Entwicklung von JavaScript in den letzten Jahren betrachtet, stellt man zwei Dinge fest: Hurra, die Browser halten sich immer mehr an Standards, die Entwicklung fällt leichter (beispielsweise DOM, DHTML, AJAX). Andererseits gibt es mittlerweile mehr Browser, die teilweise auch nur auf einem bestimmten Betriebssystem laufen. Die Entwicklung von browserunabhängigen, modernen JavaScript-Anwendungen fällt schwerer (beispielsweise DOM, DHTML, AJAX).

Aus diesem Grund kommen Open-Source-JavaScript-Bibliotheken immer mehr in Mode, die häufig benötigte Funktionalität kapseln und – aufgrund der großen Nutzer- und damit Testbasis – auch exotischere Browser berücksichtigen können.

Gerade sehr fortgeschrittene Effekte wie etwa Drag & Drop sind ohne Bibliothek kaum mehr denkbar. Das gesammelte Wissen der Open-Source-Entwicklergemeinde hinter der JavaScript-Bibliothek lässt zumindest hoffen, dass auch seltenere Systeme adäquat berücksichtigt worden sind. Es ist häufig so gut wie unmöglich, dieses Know-how selbst zusammenzurecherchieren.

Dieses Kapitel stellt einige dieser Bibliotheken und Frameworks vor, allerdings nur kurz. Das hat einen praktischen Grund: Die Halbwertszeit solcher Bibliotheken ist häufig geringer als der Zeitraum zwischen Redaktionsschluss und Veröffentlichungszeitpunkt des Buches. Aktuelle Informationen zu den jeweiligen Bibliotheken finden Sie natürlich auf den Projektwebsites.


Rheinwerk Computing

33.1 Prototype  toptop

Eine der bekanntesten JavaScript-Bibliotheken ist Prototype. Unter http://prototype.conio.net/ gibt es das Ganze zum Download, entweder als einzelne .js-Datei (prototype.js) oder als komplette Distribution mit einzelnen Skriptdateien. Letztere Variante enthält die einzelnen Prototype-Bestandteile im Ordner src; im Ordner dist befindet sich dann die prototype.js, die Datei, die den kompletten Code aus den Einzeldateien enthält. Der Sinn des Ganzen: Im src-Verzeichnis finden Sie die Funktionalität nach Bereichen aufgeteilt, die komplette Datei prototype.js wird aber in Websites verwendet (somit ist nur ein zusätzlicher HTTP-Request erforderlich):

<script type="text/javascript" src="prototype.js"></script>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 33.1     Die Homepage von Prototype

Der bekannteste Bestandteil von Prototype ist folgende Hilfsfunktion:

function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);


    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

Sie übergeben eine beliebige Anzahl von IDs an die Funktion und erhalten Referenzen auf die entsprechenden HTML-Objekte zurück. Der Aufruf $("XYZ") entspricht also document.getElementById("XYZ"). Also ist das Ganze an sich nichts Besonderes, aber es ist einfach eine enorme Zeitersparnis. Die Methode getElementById() wird in DOM-Anwendungen so häufig aufgerufen, dass eine solche Abkürzung wirklich praktisch ist. Und viel besser noch: Da kaum bekannt ist, dass das Dollarzeichen in Funktions- und sogar Variablennamen in JavaScript erlaubt ist, haben auch modernere JavaScript-Anwendungen in der Regel keine Funktion, die $() heißt.

Davon abgesehen bietet Prototype einige nette Features, die bei der täglichen Arbeit mit JavaScript viel Zeit sparen können. Einige eingebaute Objekte werden erweitert, beispielsweise erhalten Strings einige neue Methoden. Sehr wichtig – vor allem in Zusammenhang mit XSS (siehe Kapitel 30) – ist die Methode escapeHTML(), die HTML-Sonderzeichen entfernt. Hier schlägt Prototype einen interessanten Weg ein: Es wird ein Textelement erzeugt, dessen Text der von HTML-Sonderzeichen zu befreiende String ist. Am Ende liefert die Eigenschaft innerHTML des äußeren Elements den HTML-kodierten String zurück:

var div = document.createElement('div');
var text = document.createTextNode(this);
div.appendChild(text);
return div.innerHTML;

Sehr praktisch sind auch die Erweiterungen für Arrays. Hier eine Auswahl der neuen Methoden, die – dank Prototype – jedes JavaScript-Array besitzt:

gp  first() – liefert das erste Element.
gp  last() – liefert das letzte Element.
gp  compact() – liefert alle nicht-leeren Elemente.
gp  flatten() – wandelt ein mehrdimensionales Array in ein eindimensionales um.
gp  indexOf() – liefert die Position eines bestimmten Elements im Array.

Für AJAX-Anwendungen liefert Prototype gleich eine gesamte Objekthierarchie. Unter anderem gibt es die Klasse Ajax.Request, Ajax.Updater und Ajax.PeriodicalUpdater. Und obwohl AJAX, wie Kapitel 18 zu beweisen versuchte, keine komplizierte Wissenschaft ist, kann die Prototype-Implementierung doch ein wenig (Programmier-) Schweiß vermeiden.

Prototype bietet so praktische JavaScript-Erweiterungen, dass viele Projekte darauf aufsetzen und deswegen die Bibliothek gleich mitliefern. Am bekanntesten ist wohl das zurzeit sehr populäre Web-Framework Ruby on Rails (http://www.rubyonrails.com/), in das Prototype integriert ist. Außerdem gibt es eine Reihe von Projekten, die auf Prototype aufbauen, beispielsweise die Bibliothek im nächsten Abschnitt.

 <<   zurück
  
  Zum Rheinwerk-Shop
Neuauflage: JavaScript
Neuauflage: JavaScript
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Einstieg in JavaScript






 Einstieg in JavaScript


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern