Google bietet einige Javascript Frameworks zum Download über sein Content Delivery Network (CDN) an. Der Vorteil ist, dass die Server schnell sind und dass eine große Chance besteht, dass der Besucher einer Website die Datei bereits in seinem Cache hat. Beides führt zu einer deutlich schnelleren Ladezeit.
Was aber wenn die Server von Google nicht erreichbar sind? Zum Beispiel weil der Nutzer den Zugriff aus irgend welchen Gründen blockiert? Dann würde die Website nicht mehr funktionieren.
Zum Glück gibt es einen Ausweg.
Der Ausweg
Ich wollte auch die Vorteile nutzen und jQuery von Google für meine Website bereitstellen lassen. Falls das nicht klappen sollte will ich einen Plan B haben. Das lässt sich mit Javascript verwirklichen.
Der Trick ist, dass jQuery ein Objekt im Browser anlegt wenn es geladen wurde. Und das lässt sich mit Javascript abfragen. Falls es jQuery nicht gibt, dann wird mit Javascript eine lokale Kopie geladen.
Ein weiterer Trick ist es die URL ohne das scheme (das http) anzugeben. Was auf den ersten Blick ungewöhnlich aussieht ist eine gültige Syntax. Damit kann dann sowohl eine http als auch eine verschlüsselte https Verbindung verwendet werden ohne dass es dabei zu Fehlermeldungen kommt. Der Browser verwendet für die Anfrage einfach die fehlenden Stücke aus der URL der Seite die den Link enthält. Die Details sind im RFC 2396 beschrieben.
1 2 |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script> |
Eine netter Trick, der so natürlich auch mit anderen Bibliotheken funktioniert.