Galileo Computing < openbook > Galileo 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
Galileo 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.


Galileo 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 Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de