Ich habe in den letzten Tagen die Zeit gefunden ein paar liegengebliebene Zeitschriften durchzulesen und bin dabei auf ein paar sehr interessante JS-Bibliotheken gestoßen:
Bevel-JS
Link: http://www.netzgesta.de/bevel/
Ein cooles Script, um Grafiken via Javascript zu modifizieren.^
Im Vordergrund könnt ihr die Grafikdatei aus dem Beispielordner sehen, während im Hintergrund die Beispielseite mit angewendetem Javascript dargestellt ist. Beide mitgelieferten Javascript-Dateien haben nur eine Größe von 48kb.
Flot-JS
Link: http://code.google.com/p/flot/
Der folgende Code stammt aus dem Beispielverzeichnis:
|
$(function () {
var d1 = [];
for (var i = 0; i < 14; i += 0.5)
d1.push([i, Math.sin(i)]);
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
// a null signifies separate line segments
var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
$.plot($("#placeholder"), [ d1, d2, d3 ]);
});
|
Was hier ein wenig sehr mathematisch aussieht, ist nicht mehr als die Beschreibung bestimmter Graphen - und zwar folgender:
Das ist noch eine relativ einfache Darstellung für das, was die Flot-Bibliothek anbietet. Eine schon etwas komplexere Beispieldarstellung gleich mehrerer verschiedener Graphen findet sich ebenfalls im Beispielverzeichnis:
Um es mit den Worten eines Arbeitskollegen zu sagen: "Das werd ich nicht mehr als einmal pro Jahr brauchen, aber dann könnte es echt interessant sein."
Das nette an den Diagrammen ist, dass die Bibliothek gleichzeitig Methoden mitbringt, die bei der Wertebestimmung oder dem vergrößern von Ausschnitten helfen.
Ext-JS
Link: http://extjs.com
Die ExtJS scheint sehr nette vordefinierte Controls mitzubringen. Ein Screenshot der API-Doku des Frameworks demonstriert gleichzeitig einige der Controls, die auf der hauseigenen Seite zum Einsatz kamen:
Wie man im Baum auf der linken Seite lesen kann, sind einige der vorhandenen Controls sehr sinnvolle Controls, die in den meisten Anwendungen ihren Platz finden könnten. Darunter u.a.: Grid, Menu und Tree.
Für die Lesefaulen gibt es dort übrigens ebenfalls eine Seite mit Videotutorials.
zXml
Link: http://nczonline.net/downloads/
Auf der oben genannten Seite, findet man mehrere nette Bibliotheken für Javascript. Eine davon ist z.B. eine Erweiterung der JS-Arrays um Methoden wie "Clone".
Die Klasse, die mich aber am meisten interessiert hat, stellt eine browserunabhängige Schnittstelle für die Verarbeitung von XML zur Verfügung. Die JS-Datei ist gerade einmal 14kb groß und erlaubt es einem über Code ähnlich dem folgenden zu verwenden:
|
//create a DOM document
var oXml = zXmlDom.createDocument();
//fill it with some XML
oXml.loadXML("<root><child index=\"1\"/><child index=\"2\"/> <child index=\"1\"/><child index=\"3\"/></root>");
//look around
alert("Root is: " + oXml.documentElement.tagName);
alert("First child is: " + oXml.documentElement.firstChild.tagName);
|
Wie man sehen kann, kann man über übliche Begriffe wie firstChild oder tagName auf die einzelnen Elemente und ihre Werte zugreifen.
Dojo-Offline-Toolkit
Link: http://dojotoolkit.org/offline
Im "entwickler"-Magazin (Ausgabe: März/April) befindet sich ein Artikel über die Verwendung des Dojo-Offline-Toolkits in Zusammenarbeit mit Google-Gears. Google-Gears stellt eine SQLite Datenbank und einen Proxy zur Verfügung, mit dem sich dynamischer Content auf dem Client ablegen und bei Bedarf gesteuert angezeigt werden kann.
Das Dojo-Offline-Toolkit fügt Google-Gears keine neuen Methoden hinzu, jedoch stellt es einige Methoden zur Verfügung, die die Arbeit mit Gears wesentlich erleichtern sollen. Darunter fallen Methoden wie den Dojo-Storage, bei dem sich Objekte persistent ablegen lassen, sowie Befehle zur Ausführung von SQL oder dem Nachladen von Ressourcen einer Webseite.
Nur der Vollständigkeit halber hier noch einige weitere Links von mir bekannten Javascript-Frameworks:
- Prototype
- Script.Aculo.Us
- Moo-Ajax und Moo-FX
- JQuery
- ASP.Net Ajax
Alle von diesen sind großartige Frameworks, die sich nicht nur auf die normale Arbeit mit Ajax beschränken, sondern auch perfekte Effekte liefern. Ich gehe jedoch davon aus, dass diese Frameworks den Leuten eher geläufig sind und deswegen eher weniger Erklärungsbedarf bestehen dürfte.