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?
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?
Antworten:
Das ist weil:
Es gibt verschiedene Szenarien, in denen Sie jQuery aus Googles CDN möglicherweise nicht verwenden möchten:
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.
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.
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
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.
src="//ajax.googleapis.com/..."
, funktionieren.
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). "
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
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
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.
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.