
Der von mir sehr geschätzte Dave Ward, hat mich vor Kurzem mit seinem Beitrag
3 reasons why you should let Google host jQuery for you
auf einen (neuen?) Google-Service aufmerksam gemacht, den Benutzer der inzwischen recht zahlreichen Javascript-Frameworks
unbedingt nutzen sollten. Die Rede ist von der Google AJAX Libraries API.
Mit diesem Service geht Google einen Schritt auf die wachsende AJAX-Entwicklergemeinschaft zu und erlaubt das notwendige
Framework, in Form einer JS-Datei, statt vom eigenen Server von Googles Datacentern zu laden. Quasi erwünschtes Deep-Linking.
The AJAX Libraries API is a content distribution network and loading architecture for the most popular, open source JavaScript libraries.
Die wachsende Liste der Frameworks deckt aktuell mit
jQuery, Prototype,
script.aculo.us, Dojo,
MooTools und YUI wohl einen großen
Prozentsatz dessen ab, was im Web zur Zeit so eingesetzt wird.
Nun wird man denken, 'OK, die paar Kilobyte können genauso gut von meinem Server geladen werden', aber das wäre zu kurz
gedacht, denn ein externes CDN (Content Delivery Network) zu verwenden, bietet eindeutige Performance-Vorteile. Zum ersten
sorgt Googles Server-Infrastruktur dafür, dass die Datei einen möglichst kurzen Weg zum Browser zurücklegen muss und damit
schneller ausgeliefert wird. Zum zweiten sind Browser beim Laden einer Seite in der Menge ihrer Verbindungen zu einem Server
limitiert, d.h. während noch das Bild des Firmenlogos vom eigenen Server unterwegs ist, kann der Browser parallel
die gewünschte Framework-Datei laden.
Den von Google preferierten Weg eines der Frameworks in die eigenen Seiten einzubinden mutet allerdings etwas fremdartig
an:
<script src="http://www.google.com/jsapi"></script<
<script>
google.load("jquery", "1.2.6");
google.setOnLoadCallback(function() {
// ... eigener Code
});
</script>
Zuerst die Google-API laden, um dann über die Methode google.load zum Beispiel jQuery nachzuladen? Naja,
das trifft wohl eher den Geschmack der Entwickler, die viel mit Google-Maps arbeiten und die jsapi ihr Zuhause nennen.
Das Ganze hat zudem einen Nachteil: das gute alte $(document).ready() könnte zum Problem werden.
In der Liste der verfügbaren Frameworks
findet man allerdings die Pfade zu den Originaldateien auf Googles Servern, d.h. dem klassischen Weg
Javascript einzubinden steht nichts im Wege.
Fazit
Google hat, wie ich finde, eine sehr vernünftigen Weg gefunden seine Server noch ein wenig mehr auszulasten und die
Ladezeiten auch meiner Webseite etwas zu beschleunigen. Man muss ja, wie Dave berechtigterweise anmerkt, immer daran denken
dass die Benutzer ab und an ihren Browser-Cache leeren und dann die 'paar Kilobyte' wieder neu geladen werden müssen.
Man sollte allerdings unbedingt daran denken, sich für die lokale Entwicklung eine Debug-Weiche einzubauen,
um dort das Laden des Frameworks aus dem Internet zu vermeiden.