Seit kurzem beschäftige ich mich auch mit jQuery, welches sich selbst so beschreibt: jQuery is a new type of Javascript library. It is not a huge, bloated, framework promising the best in AJAX – nor is just a set of needlessly complex enhancements – jQuery is designed to change the way that you write Javascript.
Das sind große Worte, aber ich muss ihnen zustimmen. jQuery behandelt natürlich auch AJAX, aber wirklich besonders ist, wie jQuery die Struktur eines Projektes verändern kann – selbst wenn es keinen Gebrauch von AJAX macht.
Java Script kann die Benutzerführung einer Webapplikation erheblich vereinfachen, das Schreiben einer solchen Website aber auch erheblich verkomplizieren. Alleine schon, weil man den JS-Code an vielen Stellen in der Website hinterlegen kann und bei mehreren Seiten die Anzahl der Plätze nur noch vielfältiger wird.
Dann stehen an ziemlich vielen Stellen in der Website die eigentlichen JS-Aufrufe drin, der HTML-Code wird um jede Menge DIVs und IDs angereichert um von JavaScript aus auf die Webelemente zugreifen zu können.
Genau an dieser Stelle greift jQuery ein, wie man an folgendem Beispiel sieht:
$("input.buttonCAdd").click(function(){$("div.contentToChange").find("p").not(".alert")
.append(" This text was just appended to this paragraph")});
Das Beispiel stammt von Cody, auf seiner Seite kann man sich anschauen, was sich tatsächlich mit jQuery anstellen lässt.
Der größte Unterschied zur „normalen“ Verwendung von JavaScript ist bei obigem Beispiel, dass die Aktion, die bei Klick auf einen Button passiert, nicht in der Website selbst definiert wird, sondern unabhängig davon passieren kann. Man kann sich jQuery als eine Art CSS für JavaScript vorstellen. Dadurch lässt sich eine MVC-Trennung des Website-Codes bis auf Ebene des JS herunter durchziehen.
Der Website-Code wird außerdem schlanker, da nicht mehr so viele DIVs und IDs benötigt werden. Zusätzlich kann die Usability der Website für Nutzer ohne JS gesteigert werden, weil der eigentliche Website-Code kein JavaScript mehr enthält. Dadurch ist es einfach schwieriger, Websites zu entwerfen, die nur mit JS einwandfrei funktionieren.
Die AJAX-Funktionalitäten von jQuery habe ich mir dabei noch garnicht angeschaut. Aber damit werde ich in den nächsten Tagen genug zu tun haben :-)