Nov 29
jQuery – ein mächtiges und effizientes Werkzeug
Mit diesem Beitrag möchte ich über meine ersten Eindrücke des überaus mächtigen und dennoch schlanken Javascript-Frameworks jQuery veröffentlichen.
Zum Aufbau dieses Beitrags:
- Was ist jQuery?
- Wie verwendet man jQuery?
- Die jQuery-Syntax …
- … im Vergleich zum gewöhnlichen JavaScript
- Vorteile / Nachteile
Was ist jQuery?
jQuery ist ein von John Resig entwickeltes, frei verfügbares Javascript-Framework, das über sehr umfangreiche und mächtige Funktionen zur Navigation und Manipulation der DOM-Syntax bereit stellt. Vor allem die vereinfachte Navigation und Einbindung gehören zu den Stärken des JS-Programmiergerüsts. Des Weiteren bietet das Framework elegante und leicht verständliche Funktionen für animierte Effekte, Ajax und Event-Handling.
Aktuell liegt jQuery in der Version 1.2.2 vor.
Wie verwendet man jQuery?
Um jQuery nutzen zu können, bindet man das Framework wie jede andere externe Javascript-Datei in seine Homepage ein. Das Integrieren sollte möglichst bereits im Header geschehen.
<script src="jQuery.js" type="text/javascript"></script></pre>
Die jQuery-Syntax …
Auf die Funktionen von jQuery greift man mittels des $-Operator zu. Zum Verketten von Anweisungen dient der Punkt-Operator ( . ).
Die jQuery-Syntax ist sehr an XPath und CSS-Selektoren angelehnt.
Der Zugriff auf Elemente, denen das id-Attribut zugewiesen wurde, erfolgt mit $(„#meine_id“).
Um auf alle Elemente eines bestimmten Tags zuzugreifen, verwendet man eine Anweisung wie $(„div“).
Der Zugriff aus Kindelemente kann über zwei verschiedene Ausdrücke erreicht werden. Zum einen besteht die Möglichkeit die entsprechenden Anweisungen in einem Aufruf auszuführen, zum Beispiel $(„#meine_id div“) um alle div’s innerhalb des meine_id-Objekts zu addressieren. Zum anderen bietet sich die children-Funktion an. Ein solcher Ausdruck sähe z.B. so aus $(„#meine_id“).children(„div“).
Einen ausführlicherer Überblick über die jQuery-Selektoren wird demnächst folgen.
Um beispielsweise a-Elementen beim Anklicken einen simplen Alert-Aufruf zu spendieren, verwendet man folgende Syntax:
$("a").click(function(){ alert("Vielen Dank für Ihren Besuch!"); return false; });
Mit $(„a“) wird auf alle a-Element im Document Zugriff genommen. Auf diese Elemente wird ein click-Event angewandt, das beim Anklicken eine Alert-Box öffnet.
Das Absenden eines Ajax-Requests sieht dann wie folgt aus:
$.ajax( { type: "POST", url: "datei.php", data: "seite=ajaxschmiede&endung=de&inhalt=jquery", success: function(antwort){ alert( "Senden erfolgreich: " + antwort ); } });
Weiteres Event-Handling entfällt.
… im Vergleich zum gewöhnlichen JavaScript
Das oben genannte Beispiel mit dem Hinzufügen eines click-Events zu einer Reihe von a-Elementen, würde in normalen Javascript etwa wie folgt aussehen:
var path = document.getElementsByTagName("a"); for ( var i = 1; path[i]; i++ ) { path[i].onclick(alert("Vielen Dank für Ihren Besuch!"); }
Ein gut implementiertes Script zur Verarbeitung von Ajax-Requests wäre im Vergleich zum übersichtlichen jQuery um einiges umfangreicher und weniger leicht verständlich. Bisher verwendete ich folgendes Script zur Übermittlung von Daten per Ajax:
var isWorking = false;
function my_ajax_request( file, data )
{
var xmlHttp = false;
/* create xmlhttp-element*/
// Mozilla, Opera, Safari and Internet Explorer 7
if (typeof(XMLHttpRequest) != ‚undefined‘)
{
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) // IE <= 6
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = false;
}
}
}
/* if xmlhttp-element and no request exist */
if (xmlHttp && !isWorking)
{
/* file request */
xmlHttp.open('POST', file, true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
/* executed if state changed */
xmlHttp.onreadystatechange = function ()
{
if (xmlHttp.readyState == 4) // data loaded
{
if(xmlHttp.status == 200)
{
// function starts when loaded
alert("Senden erfolgreich: " + xmlHttp.responseText);
isWorking = false;
}
if (xmlHttp.status == 404)
{
// file not found
isWorking = false;
alert("no file found");
}
}
}
isWorking = true;
xmlHttp.send(data);
}
}
[/source]
Quelle: http://de.wikipedia.org/wiki/XMLHttpRequest
Vorteile / Nachteile
jQuery ist ein Tool um viel Zeit und Code zu sparen. Mit Hilfe des Frameworks erschafft leicht lesbaren Javascript-Code, der sich leicht weiterverwenden lässt. Durch die enorme Flexibilität der Selektoren, bieten sich dem Designer / Coder nahezu grenzenlose Möglichkeiten. Die vielen bereits vorimplementierten Funktionen wie das Hin- und Herschalten zweier Funktionen auf einem Element (Toggle) oder die Effektfunktionen (Slide, Hide, usw.) ermöglichen es, in wirklich kurzer Zeit interessante Effekte in seine eigene Homepage einzubetten.
Einige praktische jQuery-Beispiele werden folgen.
Januar 3rd, 2008 at 12:25 pm
Klasse Einführung in jQuery, ich hoffe die versprochene Tutorials kommen noch.
Januar 16th, 2008 at 11:53 pm
[…] findest du eine Einführung in jQuery Ähnliche Themen im Blog: DOMAssistant – eine modulare […]
Januar 31st, 2008 at 11:18 pm
Mittlerweile sind schon einige interessante Tutorials in der Kategorie jQuery zu finden. Im Lauf der Zeit werden es natürlich noch mehr. 🙂
Februar 1st, 2008 at 1:38 am
[…] unserer Einführung zu jQuery kann man sich die Grundlagen im Umgang mit diesem Framework anschauen. Ähnliche Themen im […]
Februar 14th, 2008 at 12:23 am
[…] auch in Drupal 5 nutzt die neue Version die mächtige Javascript-Bibliothek jQuery in der aktuellen Version 1.2.3, wie wir bereits […]
April 15th, 2008 at 12:17 pm
[…] Resig, Mitarbeiter der Mozilla Foundation für JavaScript-Angelegenheiten und Kopf hinter der jQuery-Bibliothek, entwickelt derzeit mit Dromaeo an einem einheitlichen JavaScript-Benchmark für alle […]
Juni 7th, 2008 at 1:16 pm
[…] John Resig die Ausführungsgeschwindigkeit ihrer Javascript-Bibliothek, über die wir bereits vor einem halben Jahr zum ersten Mal berichteten, vor allem im Bereich Event-Handlung enorm. Zudem wurden einige Feature […]
Juli 29th, 2008 at 10:32 pm
[…] in nahezu allen Frameworks wie jQuery, mooTools oder DomAssistant implementierte Selector-API, mit deren Hilfe es möglich ist, […]
September 8th, 2008 at 6:38 am
[…] Nicht unbedingt sinnvoll dieses Beispiel (Usability), aber gut eingänglich. Mehr dazu unter jQuery – ein mächtiges und effizientes Werkzeug, wo es auch einen Vergleich zum herkömmlichen JS gibt. Einen etwas ausführlicheren Code-Vergleich […]
September 21st, 2008 at 11:10 am
[…] der Ajaxschmiede gibt es ein paar gute einführende […]
Dezember 3rd, 2008 at 6:19 pm
[…] jQuery Beschreibung (jQuery Kategorie) […]
Februar 24th, 2009 at 8:28 pm
Viele Schöne Tuts habt ihr hier! Weiter so…
Gruß aus KS
September 4th, 2009 at 12:58 am
[…] […]
September 15th, 2009 at 11:52 pm
[…] bereits bestehenden Telekomanschluss weiterhin nutzen möchte (für die Sortierung wird übrigens jQuery […]
Oktober 11th, 2009 at 7:41 pm
[…] jQuery Beschreibung (jQuery Kategorie) […]
Februar 22nd, 2010 at 8:44 am
ein gewöhnliches Tutorial wie seeehr viele andere auch ohne spezifischen Nutzen.
ein lauffähiges POST-Beispiel mit Parameterübergabe ohne alert wäre wesentlich sinnvoller.
Dann werde ich mal weitersuchen.
Tschüss
März 18th, 2010 at 5:36 pm
[…] Frage hat die Ajaxschmiede kurz und informativ zusammengefasst: jQuery – ein mächtiges und effizientes Werkzeug « […]
Mai 28th, 2010 at 4:25 pm
Ein Framework welches ich nicht mehr missen möchte. Einfacher geht es wirklich kaum, denn so können selbst Einsteiger in die Thematik relativ schnell sichtbare Ergebnisse erzielen, die sich sehen lassen können.
Juni 18th, 2010 at 11:19 pm
[…] Schau mal was ich in 2 Sekunden Googeln gefunden habe: http://www.ajaxschmiede.de/jquery/jq…ntes-werkzeug/ Zitieren […]
Oktober 4th, 2010 at 12:32 pm
und wo wird hier über die Nachteile geschrieben?
Februar 9th, 2011 at 8:29 pm
Vielen Dank für diesen tollen Beitrag. Gibt es auch eine Möglichkeit JQuery komplett im Body Tag einzubinden?
April 10th, 2011 at 4:22 pm
@kalle
natürlich kann jQuery auch am Ende des body Tag eingebunden werden.
Es wird sogar explizit empfohlen, wegen der verkürzten Ladezeiten.
Februar 13th, 2012 at 12:13 pm
Gute Infos zum Thema jQuery. Das mit den ladezeiten kann aber zum problem werden.