Was ist der Grund, Skripte mit zwei verschiedenen Aufrufen einzubeziehen?

8

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.

    
Sergei Basharov 03.01.2012, 18:13
quelle

6 Antworten

8

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." =)

    
Ayman Safadi 03.01.2012, 18:15
quelle
2
%Vor%

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

ausgeführt     
hunter 03.01.2012 18:15
quelle
2

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.

    
letuboy 03.01.2012 18:17
quelle
1

Ja, es prüft, ob jQuery geladen ist oder nicht, wenn nicht, dann lädt es von seinem eigenen Server.

// wird nur verwendet, um es mit HTTP und HTTPS kompatibel zu machen.

    
Usman 03.01.2012 18:17
quelle
0

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.

    
Rubens Mariuzzo 03.01.2012 18:17
quelle
0

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.

    
Tieson T. 03.01.2012 18:24
quelle

Tags und Links