Ich benutze HTML5-Muster und jQuery wird zweimal in der HTML-Seite wie folgt deklariert:
%Vor%Was ist der Grund dafür, die JavaScript-Dateien auf diese Weise einzubinden?
Es scheint der einzige Grund zu sein, die jQuery-Bibliothek vom lokalen Server zu laden, wenn sie nicht von Google CDN aus erreichbar ist.
Sie argumentieren html5 Boilerplate enthält das Skript, weil es versucht, "jQuery-Bibliothek vom lokalen Server zu laden, wenn es nicht von Google CDN erreichbar ist." =)
Dadurch wird versucht, die protokollfreie Version der jQuery-Bibliothek zu laden.
%Vor% Dadurch wird die lokale Version der jQuery-Bibliothek geladen, wenn die google-gehostete Version nicht korrekt geladen wurde (nicht erreichbar, Site ist ausgefallen, usw.), daher der window.jQuery
check. Wenn window.jQuery
nicht true
ist, wird document.write
Das Laden von jQuery aus dem Google CDN kann viel schneller sein als das Laden von jQuery von Ihrem lokalen Server und es kann zwischengespeichert werden, sodass der Benutzer möglicherweise bereits eine Kopie von einer anderen Website im Cache gespeichert hat.
Die Überprüfung ist, dass es geladen wurde, andernfalls, wenn es fehlgeschlagen ist, laden Sie es vom lokalen Server.
Der Grund ist Failback . Die erste Codezeile
%Vor%Ziehen Sie die jQuery-Bibliothek aus dem Google CDN, wie Sie gesagt haben. Dann diese nächste Zeile:
%Vor%Prüft, ob die jQuery-Bibliothek geladen wurde (aus dem Google CDN). Falls nicht, rufen Sie eine lokale Kopie von jQuery ab.
Wenn Ihre Frage lautet " warum ist das Übertragungsprotokoll nicht angegeben? ", lautet die Antwort "es muss nicht angegeben werden". Auf diese Weise können Sie denselben Skriptverweis verwenden, unabhängig davon, ob die Verbindung einen sicheren Socket verwendet oder nicht, ohne dass Ihre Benutzer Warnungen über verschlüsselten / unverschlüsselten Inhalt erhalten.
Wenn die Frage lautet: was macht diese Zeile ?: window.jQuery || document.write ('& lt; / script & gt;') , dann lautet die Antwort, dass wir a verwenden (mehr oder weniger) ternäre Anweisung zum Testen des jQuery-Objekts, das zu einem "false" -Wert ausgewertet wird, wenn die jQuery-Bibliothek nicht geladen wurde, und wenn dies der Fall ist, löst dieser Test die zweite Hälfte der Anweisung aus, was zur lokalen jQuery führt geladen werden.
HTH.
Tags und Links javascript html jquery