Warum sollte ich Googles CDN für jQuery verwenden?

169

Für manche mag dies offensichtlich sein, aber ich habe mich gefragt: Warum sollte ich mich auf den Server von Google verlassen , um jQuery für meine Website zu hosten?

Liegt es nur daran, dass es auf diese Weise schneller geladen wird?

Yvette
quelle
1
Siehe auch
Jørn Schou-Rode
2
Niemand erwähnt, welche Richtlinien Google zum Hotlinking zu seinen JS-Dateien hatte (da Hotlinking normalerweise verpönt ist). Hier ist die URL, unter der Google erwähnt, dass dies in Ordnung ist, und mehr zu den von ihnen gehosteten
Loftx
1
Viele Benutzer haben jQuery bereits von Google oder Microsoft heruntergeladen, wenn sie eine andere Website besuchen. Infolgedessen wird es aus dem Cache geladen, wenn sie Ihre Site besuchen, was zu einer schnelleren Ladezeit führt
AminM
Sie sollten weder Microsoft noch Google verwenden. Verwenden Sie MaxCDN. Es ist viel wahrscheinlicher, dass der Cache getroffen wird, was hier am wichtigsten ist. Blog.jquery.com/2014/01/14/…
0fnt

Antworten:

393

Das ist weil:

  1. Es erhöht die verfügbare Parallelität.
    (Die meisten Browser laden nur 3 oder 4 Dateien gleichzeitig von einer bestimmten Site herunter.)

  2. Dies erhöht die Wahrscheinlichkeit eines Cache-Treffers.
    (Je mehr Websites dieser Vorgehensweise folgen, desto mehr Benutzer haben die Datei bereits bereit.)

  3. Es stellt sicher, dass die Nutzlast so klein wie möglich ist.
    (Google kann die Datei in einer Vielzahl von Formaten (wie GZIP oder DEFLATE) vorkomprimieren. Dadurch wird die Zeit zum Herunterladen sehr gering, da sie sehr komprimiert ist und nicht im laufenden Betrieb komprimiert wird.)

  4. Dies reduziert die von Ihrem Server verwendete Bandbreite.
    (Google bietet grundsätzlich kostenlose Bandbreite an.)

  5. Es stellt sicher, dass der Benutzer eine geografisch enge Antwort erhält.
    (Google verfügt über Server auf der ganzen Welt, wodurch die Latenz weiter verringert wird.)

  6. (Optional) Sie halten Ihre Skripte automatisch auf dem neuesten Stand.
    (Wenn Sie "am Sitz Ihrer Hose vorbeifliegen" möchten, können Sie immer die neueste Version eines von ihnen angebotenen Skripts verwenden. Diese können Sicherheitslücken schließen, aber im Allgemeinen nur Ihre Sachen kaputt machen.)
John Gietzen
quelle
10
Ich liebe es, wie Sie immer mehr Gründe finden. +1 allein dafür.
Matchu
6. Googles-Server sind wahrscheinlich schneller als Ihre! Ich bin mir nicht sicher, ob Punkt 3 wirklich relevant ist, da jeder genauso gut wie Google minimieren kann. +1 für eine gute Antwort :)
Paul Creasey
1
Ich denke, # 3 hat wahrscheinlich mehr mit gzip und dergleichen zu tun, da jQuery bereits eine minimierte Version herausgibt.
Matchu
2
Gott, alle haben mich angegriffen, ich habe gerade meine Ideen geschickt und wurde angenommen, LOL
Farshad
1
@farshad: Dich nicht angreifen, die akzeptierte Antwort angreifen, die nicht so gut war wie die nächste Antwort. So funktioniert Community Q & A. Versuchen Sie, Ihre Antwort beim nächsten Mal etwas professioneller zu formatieren und Ihre Kritik an der Frage auf die nützliche, konstruktive Art zu beschränken.
Joel
58

Es gibt verschiedene Szenarien, in denen Sie jQuery aus Googles CDN möglicherweise nicht verwenden möchten:

  1. Wenn Sie eine Intranetanwendung erstellen, bei der der Webserver im selben Netzwerk wie die Clients gehostet wird. Wenn Sie Googles CDN jQuery verwenden, rufen Sie das Internet an und nicht einen Webserver im lokalen Netzwerk. Dies erhöht die Bandbreite für Ihr Unternehmen und ist langsamer.

  2. Wenn Sie Ihre Anwendung offline ausführen möchten . (Ganz im Zusammenhang mit der ersten Ausgabe) Wenn Sie in einer Entwicklungsumgebung arbeiten müssen (die beispielsweise mit Bower verwaltet wird ), müssen Sie möglicherweise in der Lage sein, Ihre Anwendung ohne Internetverbindung (z. B. in einem Zug) zum Laufen zu bringen.

  3. Wenn Sie es anpassen müssen . Zum Beispiel, wenn Sie Grunt zum Erstellen der Bibliothek verwenden, um nur bestimmte Module zu verwenden oder den AMD-Namen festzulegen

  4. Wenn Sie Seiten über SSL bereitstellen, für die jQuery erforderlich ist. Sie sollten JavaScript über SSL sowie Ihre Seite bereitstellen, um Sicherheitsprobleme und Warnungen zu vermeiden.

Außerdem hostet Microsoft jQuery auf seinem CDN. Dies ist eine weitere Option, die mit der Verwendung von Googles gehosteter jQuery vergleichbar ist.

Lance Fisher
quelle
35
Nur zu Ihrer Information, dass Sie die Server von Google verwenden können, um eine SSL-Version der gehosteten Javascript-Bibliotheken bereitzustellen. ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js funktioniert.
Aaron Wagner
Gut zu wissen, Aaron. Vielen Dank.
Lance Fisher
3
+1 für die Erwähnung von Microsoft. Google bekommt viel zu viel Kredit imo.
Ja, Barry
7
Auch FYI: Schema relative Hyperlinks, wie src="//ajax.googleapis.com/...", funktionieren.
John Gietzen
3
Und denken Sie auch an cndjs
Bryce
29

Diese Studie von TJ VanToll hat mich überzeugt, dass es besser ist, jQuery mit anderen Skripten zu verketten, als es von einem CDN zu laden.

Der Grund ist die Latenz beim Abrufen von jQuery auf Mobilgeräten:

"Im Jahr 2012 betrug die durchschnittliche RTT-Zeit in einem Mobilfunknetz in den USA 344 ms. Diese 344 ms gelten nicht nur für jede HTTP-Anfrage, von der die durchschnittliche Webseite jetzt 93 macht, sondern auch für jede DNS-Suche und TCP-Verbindung ... Während sich die durchschnittlichen RTTs verbessern, sind nur geringe zusätzliche Gewinne zu verzeichnen, da die derzeitigen Netzwerke innerhalb eines kleinen Faktors der theoretischen Grenze liegen, die von der Physik vorgegeben wird. "

Er zitiert auch diesen Beitrag von Steve Souders, der zeigt, warum es unwahrscheinlich ist, dass Sie den Caching-Vorteil durch die Verwendung eines CDN erhalten:

"Aufgrund der Fragmentierung bei CDN-Anbietern, jQuery-Versionen und der Protokollnutzung (http vs. https) sind die Chancen, einen CDN-Cache-Treffer zu erhalten, erschreckend gering - und das Herunterladen von einer externen Domäne kann nicht nur eine, sondern drei ausführen." Roundtrips (eine DNS-Suche, eine TCP-Verbindung und ein HTTP-GET). "

Cantera
quelle
3
Dies gilt nicht mehr für HTTP2 und SPDY. Heute können Sie alle Ihre externen Ressourcen in einem CDN wie Cdnjs.com oder so hosten, und alle Dateien werden mit derselben Anfrage heruntergeladen. Das ist im Grunde das gleiche wie verketten.
Ricardo Polo Jaramillo
13

Der größte Vorteil ist das Caching. Die Theorie besagt, dass sich die Bibliothek beim Besuch Ihrer Website bereits im Browser-Cache des Benutzers befindet und nicht erneut heruntergeladen werden muss, wenn ein Besucher eine Website besucht hat, auf der seine JavaScript-Bibliotheken geladen wurden, z. B. jQuery, z. B. aus dem Google CDN . Das klingt theoretisch großartig.

Die Vorteile, die hier und anderswo geteilt werden, sind alle theoretisch. Ich bin gerade auf eine eingehende Analyse der Verwendung eines CDN gestoßen und habe festgestellt, ob es die erwarteten Leistungsvorteile bietet. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

Matt Moor
quelle
Diese Antwort wird stark unterschätzt. Es liefert die gleichermaßen gültigen "Nachteile" für die oben akzeptierte "Pro" -Antwort.
Thomas Wana
@ user239558 Der Link wäre nicht tot, wenn der Autor der Studie tatsächlich ein CDN verwendet hätte ;-) Der Fehler lautet: [function.require]: Stream konnte nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis in / homepages / 41 / d222999437 /htdocs/wp-content/themes/prose/functions.php
jplandrain
Der Artikel ist nicht gut durchdacht. Es heißt, dass die am wenigsten verbreiteten jQuery-Bibliotheken vom Google CDN auf etwa 0,5% aller Seiten bereitgestellt werden. Während einer allgemeinen Browsersitzung besuche ich viele Seiten, insbesondere die kleinen Links zu Websites, wie zum Beispiel die, auf der sie gehostet werden. Oder Blogseiten. Ich besuche leicht 30 einzigartige Sites pro Tag, nach einer Woche sind die Chancen, dass sie nicht zwischengespeichert werden, ziemlich gering. Obwohl es möglicherweise nicht für alle Benutzer zwischengespeichert wird, werden sie von Personen, die das Internet umfassend nutzen, fast immer zwischengespeichert, da sie insgesamt weit mehr als eine eindeutige Domain besuchen.
Aidiakapi
8

Ein Hauptgrund dafür, dass Google Ihre jQuery NICHT hostet, was viele Leute nicht denken, ist, dass sie nicht heruntergeladen wird, wenn Sie in China sind. Es wird zusammen mit vielen anderen Skripten, Schriftarten usw. blockiert, die von Google CDNs gehostet werden. Wenn Sie ein chinesisches Publikum erreichen möchten, verwenden Sie am besten immer einen Fallback, der auf Ihrem eigenen Server gehostet wird. Google APIS in China blockiert

Joshua Maddox
quelle
Ich bin nicht einverstanden @tmthydvnprt. Die Frage ist eine Meinung, daher liegt hier zunächst der größte Teil des Fehlers, aber dies beantwortet die Frage.
Auf Wiedersehen StackExchange
1
Ich bin hierher gekommen, um dasselbe zu tun. Wenn Nutzer in China sind, wird fast alles von Google durch die große Firewall blockiert. Dies ist jedoch wahrscheinlich kein Problem, da viele Menschen in China einen VPN-Dienst nutzen und Sie wahrscheinlich sowieso nicht auf den chinesischen Markt abzielen möchten.
Justin
0

Einige gute Antworten hier auf "Warum sollten Sie ..." und "Warum sollten Sie nicht ..."

Ich möchte einfach eine Liste mit Alternativen zu Google hinzufügen, wenn Sie jQuery von einem CDN laden möchten.

Zusammenfassend lässt sich jedoch sagen, dass Sie die Leistung Ihrer gesamten Website / Anwendung insgesamt verbessern.

EdwardM
quelle
0

Wenn Sie CDN mit einem Service Worker verwenden, können Sie das CDN einmal im Leben des Clients herunterladen und nicht jedes Mal, wenn Sie Ihren Code aktualisieren.

Oscar Gardiazabal
quelle