Skip to content

Instantly share code, notes, and snippets.

@PHP-Magazin
Created May 2, 2013 12:15
Show Gist options
  • Save PHP-Magazin/5501830 to your computer and use it in GitHub Desktop.
Save PHP-Magazin/5501830 to your computer and use it in GitHub Desktop.
Wenn der CDN ausfällt: Fallback-Methoden für jQuery und Co.
/* Da phpmagazin.de auf Grund von Serverproblemen offline ist, werden wir
unsere News temporär als Gist bereitstellen. Sorry für die schmucklose Aufmachung.
Bald werden wir uns wieder im vertrauten Gewand präsentieren. */
Content Delivery Networks (CDN) sind eigentlich dazu gedacht, Dateien allen Widrigkeiten
zum Trotz online verfügbar zu halten. Wenn dann aber doch einmal ein Knoten platzt,
und jQuery mit 15 Sekunden Verspätung übertragen wird, und die Website unbedienbar wird,
verscheucht das potenzielle Besucher oder Kunden. Ein Fallback auf eine zweite
Quelle oder den eigenen Server wäre hier der Ausweg. Und wie genau dieser realisiert
wird, erkärt Scott Hanselman <a href=”http://www.hanselman.com/blog/
CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx” target=blank title=
”CDNs fail, but your scripts don't have to - fallback from CDN to local jQuery“>in seinem Blog</a>. </p>
<p>Der Microsoft-Angestellte wurde durch einen Ausfall des ASP.Net-CDNs an der
Ostküste der USA auf das Problem aufmerksam. Etliche Website-Entwickler hatten
offenbar keine Ausfall-Strategie parat und schauten für einige Minuten in die Röhre.
Doch genau einen solchen Plan-B propagiert er nun, damit solche peinlichen,
fremdverschuldeten Aussetzer in Zukunft ausbleiben. Es gibt dabei diverse
Implementierungen. Die einfachste überprüft, ob jQuery nach dem Ladevorgang
funktioniert:</p>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script>
<script>
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='/js/jquery-2.0.0.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
<p>Wer übrigens HTML5 Boilerplate einsetzt, der wird diese Form der doppelten
Absicherung bereits vorfinden. Hanselman zeigt überdies auch alternative Methoden
auf Basis der JavaScript-Loader yepnope oder RequireJS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment