Derzeit ziehen wir jQuery- und jQueryUI-Bibliotheken (und jQueryUI-CSS-Bibliotheken) aus dem Google CDN. Ich mag das, weil ich anrufen kann google.load("jquery", "1");
und die neueste jQuery 1.xx verwendet wird.
Jetzt soll ich die Bibliotheken aus Sicherheitsgründen lokal abrufen.
Ich bin glücklich, sie vor Ort zu ziehen, aber ich frage mich, auf welche anderen Vorteile und Fallstricke ich achten muss.
javascript
jquery
jquery-ui
cdn
orolo
quelle
quelle
Antworten:
Der Hauptvorteil eines CDN besteht darin, dass die Dateien parallel zu den von Ihrer eigenen Website heruntergeladenen Dateien heruntergeladen werden können. Dies reduziert die Latenz auf jeder Seite. Die Kehrseite davon ist also die Gefahr, lokal zu hosten - erhöhte Latenz . Der Hauptgrund dafür ist, dass die Anzahl der Verbindungen, die Browser gleichzeitig zu derselben Webdomäne herstellen können, begrenzt ist. In IE6 wurden standardmäßig 2 gleichzeitige Verbindungen zu derselben Domäne verwendet, die von allen geöffneten Fenstern des IE gemeinsam genutzt werden !!In IE8 + wurde es verbessert und standardmäßig auf 6 gesetzt, was mit FF / Chrome übereinstimmt. Wenn Sie jedoch viele Bilder haben und keine Sprites verwenden, tritt eine hohe Latenz auf.
Bei Verwendung eines CDN würde ich die Bibliotheksversion immer explizit festlegen, anstatt die neueste zu erhalten. Dies verringert das Risiko, dass neue Versionen Ihren Code beschädigen. Nicht sehr wahrscheinlich mit jQuery, aber möglich.
Der andere Hauptvorteil der Verwendung eines CDN ist die Reduzierung des Datenverkehrs auf Ihrer Website . Wenn Sie pro GB zahlen oder sich auf einem virtuellen Server mit begrenzten Ressourcen befinden, kann es vorkommen, dass die Gesamtleistung der Website steigt und die Hostingkosten sinken, wenn Sie einen Teil Ihrer Inhalte auf ein öffentliches CDN übertragen.
Stellen Sie sicher, dass Sie auch die andere Antwort auf diese Frage von @Xaver lesen. Das ist ein sehr guter Trick
quelle
Ich benutze immer das CDN (Content Delivery Network) von Google. Aber nur für den Fall, dass es offline ist:
Holen Sie sich die jQuery von Google CDN und greifen Sie bei Bedarf auf local zurück
Bearbeiten : Wenn Sie IE6 nicht unterstützen müssen und Ihre Site teilweise https verwendet, können Sie auch das http entfernen:
quelle
!window.jQuery...
) interpretiert wird?<script>
Tags werden asynchron verarbeitet, oder?<script>
Tags werden synchron verarbeitet! In der zweiten Zeile muss jQuery bereits geladen sein, aber nur für den Fall, dass wir nicht etwas JS injizieren, um es lokal zu laden. Dasdocument.write
wird niemals ausgeführt, wenn jQuery bereits existiert.Andere haben die Vorteile abgedeckt. Tücken:
Wenn Sie nur Inhalte von Ihrem eigenen Server einbinden, muss dieser Server ausgeführt werden und darf nicht durch Firewalls usw. blockiert werden, damit Ihre Site funktioniert. Ziehen Sie ein Skript von einem Drittanbieter, und das sind nun zwei Server, die ausgeführt und entsperrt werden müssen, damit Ihre Site funktioniert.
Jede Site, von der Sie abrufen,
<script>
kann die Benutzererfahrung auf Ihrer Site vollständig steuern. Wenn Google sich böse fühlt, können sie etwas in ihre jQuery-Kopie einfügen, um Ihre Tastendrücke zu protokollieren, persönliche Informationen von der Seite zu stehlen, auf der Sie sich befinden, um sie in ihre Web-Tracking-Datenbank einzubinden, und Sie dazu bringen, "Ich liebe Google!" Kommentare zu jedem Formular und so weiter.Google wird das wahrscheinlich nicht tun, aber es ist ein Faktor, den Sie nicht kontrollieren können, und sicherlich ein Grund zur Sorge bei anderen Skript-Hosting-Diensten. Es gab bereits Vorfälle, in denen Statistikskripte mit Malware-Loadern kompromittiert wurden.
Bevor Sie ein Skript eines Drittanbieters einfügen - auch nicht auf einer einzelnen Seite Ihrer Website -, müssen Sie diesen zu 100% alle auf den Benutzer zugänglichen Funktionen anvertrauen, die auf diesem Hostnamen sichtbar sind (einschließlich der Web-Administrationsfunktionen).
quelle
Google CDN:
Örtlich:
quelle
if a new version breaks your existing plugins or site, you'll know about it possibly too late
Sie können die Version im CDN-Link angeben, um dies zu vermeiden.Ich bevorzuge die Verwendung meiner lokalen Version, da ich keine Kontrolle darüber habe, was sie bereitstellen. Zum Beispiel möchte ich nicht, dass meine Nutzer von Google Analytics oder Ähnlichem betroffen werden, da dies in meinem Land ein rechtliches Problem darstellt.
quelle
Vorteile: (Speziell für Googles CDN)
quelle
Praktisch in jeder Hinsicht ist die Verwendung von Googles CDN eine gute Sache.
Die Leistung wird verbessert (wenn auch nur geringfügig, es sei denn, Ihre Site ist wirklich ausgelastet), und die Datenmenge, die Ihre Server übertragen müssen, wird sinken (obwohl jQuery nicht gerade massiv heruntergeladen werden muss) usw.
Der einzige Grund, warum Sie es nicht verwenden möchten, ist, wenn Sie Google nicht vertrauen. Durch die Verwendung geben Sie Google effektiv ein zusätzliches Informationsfenster in das Verkehrsprofil Ihrer Website ein, einschließlich der Kenntnis von URLs, die Sie ansonsten möglicherweise nicht veröffentlichen möchten (z. B. sichere Bereiche Ihrer Website).
Wenn Sie in Bezug auf Sicherheit paranoid sind, kann dies ausreichen, um Sie davon zu überzeugen, sie nicht zu verwenden (schließlich wird das Hosting selbst Ihre Website nicht gerade zum Crawlen verlangsamen), aber im Allgemeinen würden die meisten Leute die pragmatische Ansicht vertreten dass Google bereits genug über seine Website weiß, dass das Hinzufügen dies keinen großen Unterschied macht.
quelle
Wahrscheinlich bin ich heutzutage in der Minderheit, aber ich würde sagen, dass Sie CDN nicht verwenden möchten, es sei denn, Sie müssen es wirklich. Schlüsselfaktoren für die Verwendung sind:
Aber ... der Punkt ist, dass diese Punkte für 90% der Websites auf der Welt nicht wirklich zutreffen. Ich wette, Sie sind nicht Facebook mit Millionen von Online-Nutzern auf der ganzen Welt, Sie sind kein Pornhub mit Hunderten von GB, die jede Sekunde übertragen werden.
Wenn Ihre Website auf Benutzer in Ihrer Stadt / Ihrem Land ausgerichtet ist und die Kapazität eines Servers für die Anzahl der Benutzer ausreicht, warum sollten Sie jemals ein CDN wünschen? Es ist für Ihre Benutzer in Ihrer Stadt schneller und für Sie einfacher, alles lokal von Ihrem Hauptserver abzurufen.
Es ging mehr um CDNs im Allgemeinen. Lassen Sie mich nun näher an der eigentlichen Frage zu jQuery oder einer anderen Bibliothek sein.
Wenn Sie möchten, dass Ihre Website länger als ein Jahr ohne Wartung zugänglich bleibt und funktioniert, sagen wir, setzen Sie sie lokal ein. Bibliotheken werden heutzutage in einem verrückten Tempo aktualisiert, dem Sie wahrscheinlich nicht folgen möchten. Und alte Versionen werden irgendwann gelöscht. Darüber hinaus kann die gesamte Bibliothek sterben (wahrscheinlich jedoch nicht für jQuery).
Aufgrund meiner jüngsten Erfahrungen habe ich TinyMCE auf der von mir gepflegten Website von 3.xx (vom 2012) auf 5.xx (vom Frühjahr 2019) aktualisiert. Diese Website arbeitete 7 (sieben!) Jahre ohne Wartung in diesem Teil der Logik. Damals gab es kein "Minimierungs" -Konzept und CDNs waren nicht so verbreitet wie heute. Aber selbst wenn sie häufig vorkommen würden - Sie wissen nie, was in 3-5-10 Jahren passieren wird. Normalerweise möchten Sie, dass Ihre Website auch ohne Wartung erhalten bleibt, oder? Wenn Sie jedoch heute jQuery von CDN abrufen, kann (und wird) dieser Link in 5 Jahren unterbrochen werden.
Eine Lösung mit CDN UND ein Fallback auf die lokale Version, wie von @Xaver vorgeschlagen, kann ein guter Kompromiss sein. Aber ... vielleicht einfach den CDN-Link loswerden? ;)
quelle
Für mich kommt es wirklich darauf an, wie viel Kontrolle Sie haben möchten. Wenn Sie wie ich sind und sich beim Arbeiten und Reisen auf einem lokalen Gastgeber entwickeln müssen. Es ist besser, die JQuery-Dateien lokal zu haben, als sie auf Google oder anderswo zu hosten.
quelle