Gibt es einen WIRKLICH berührbaren Vorteil bei der Verwendung der von Google jQuery gehosteten Bibliothek? Oder sollen wir es einfach auf unseren Server herunterladen?
Wie ist Ihre Meinung dazu?
Kommentare
- Ein einfaches Google Die Suche hat die Antwort geliefert …
Antwort
Die Verwendung eines externen CDN bietet zwei wesentliche Vorteile B. Google zum Hosten von jQuery:
- Es ist schneller. Es wird sicher sein Seien Sie schneller als Ihre Site und wahrscheinlich schneller als jedes CDN, das Sie selbst eingerichtet haben.
- Es kann sein, dass bereits zwischengespeichert ist . Viele Websites verweisen auch auf jQuery auf Googles CDN. Wenn sie also vor Ihrer Website eine andere Website damit besucht haben, müssen sie diese nicht einmal herunterladen.
Potenzial Nachteile:
- Die Domäne ist möglicherweise blockiert (dies ist in Ländern wie China recht häufig Sie können dies lösen, indem Sie einen lokalen Fallback haben ( siehe er bezüglich wie ).
- Die Fragmentierung der Versionsnummern ist also ziemlich hoch Bei Besuchern Ihrer Website werden möglicherweise viele verschiedene Versionen zwischengespeichert, jedoch nicht die, auf die Sie verwiesen haben ( finden Sie hier einige aktuelle Statistiken ). Dies ist jedoch nur beim Laden der ersten Seite ein Problem.
Kommentare
- Können Sie eine Referenz zum Einrichten von a veröffentlichen? lokaler Fallback?
- Wie Zistolen bereits erwähnt hat, besteht ein weiterer Vorteil darin, dass parallel zu Ihren Websites andere Assets heruntergeladen werden. Vielleicht möchten Sie das auch zu dieser ansonsten großartigen Antwort hinzufügen.
- Das ‚ ist etwas irreführend. Browser laden Assets parallel herunter, unabhängig davon, wo sie gehostet werden. Die Anzahl der Dinge, die sie ‚ gleichzeitig von demselben Host herunterladen, ist jedoch begrenzt.
- Ich habe das übersprungen, da es ehrlich gesagt ‚ weder hier noch dort ist – die Datei kann parallel heruntergeladen werden, aber ‚ ist auch eine zusätzliche DNS-Suche. Außerdem ist der Zeitunterschied, den eine dieser Marken macht, ohnehin vernachlässigbar.
- Fair genug. Kann dies bei schnellen Verbindungen nicht zu einer schnelleren Gesamtladezeit führen, da mehr der “ -Pipe “ verwendet werden kann?
Antwort
Ein weiterer Nachteil:
Durch die Verwendung eines CDN kann der Betreiber des CDN verfolgen die Besucher der Websites. Deshalb kosten sie kein Geld.
Kommentare
- Sicher verfolgen, aber keine Besucher: beide jquery ‚ s eigenes und google ‚ s jquery CDN werden auf Domains gehostet, die ‚ keine Cookies setzen oder verwenden (dies ist wahrscheinlich auch eine Leistungsoptimierung), und es gibt ‚ keine wirklich identifizierbaren Informationen in der Anfrage. Der CDN-Anbieter kann sich ein Bild über IP-Adressen und einige Statistiken zu Zeichenfolgen und Verweisen von Benutzeragenten machen. Dies ist wahrscheinlich wertvoll, aber ‚ stellt an sich kein großes Datenschutzrisiko dar (wenn diese Datensätze mit einer anderen Datenbank korreliert wären – beispielsweise mit personalisierten Anzeigen, die zu ähnlichen Zeiten geliefert wurden -, könnte dies möglicherweise der Fall sein ein Mittel zur Verfolgung).
- Ich denke, es kann als selbstverständlich angesehen werden (im Fall von Google), dass die Daten mit anderen Datenbanken korreliert sind, da fast jeder Google verwendet, um ständig zu suchen. Gleiches gilt für Google-Schriftarten: Ich habe kürzlich versucht, die Schriftarten auf einem Server selbst zu hosten, habe jedoch festgestellt, dass dies sehr schwierig ist. Google verbietet es nicht (Open Source), aber ‚ stellt Ihnen die Dateien nicht gebrauchsfertig zur Verfügung: Sie können sie entweder selbst kompilieren (aber es gibt sie) kein Makefile), oder Sie können Anforderungen an die Server fälschen, mit denen sie normal zugestellt werden. Beide sind für Nicht-Technikfreaks nicht machbar.
- Vielleicht. Ich habe ‚ keine Insiderinformationen, daher ist es ‚ schwer, dies mit Sicherheit zu sagen. Ich ‚ bin mir sicher, dass ‚ fehlerhaft ist und erhebliche Lücken aufweist: Die meisten Orte, an denen ich das Internet benutze, sind NAT-fähig, und einige haben NAT etliche Benutzer mit ähnlichen Maschinen (wahrscheinlich identische UA-Zeichenfolgen) – ‚ Es wäre unmöglich zu wissen, welche Anfrage von wem kommt. Und natürlich haben sie mit Adsense- und Social-Sharing-Schaltflächen fast immer ein zuverlässigeres Mittel, sodass ich mir vorstellen kann, dass sie sich nicht darum kümmern, ‚. Was die Schriftarten betrifft – ich ‚ habe diese mehrmals heruntergeladen, daher verstehe ich ‚ nicht ganz, was Sie damit meinen, dass dies schwierig ist?
- Um es klar auszudrücken: Ich ‚ gehe davon aus, dass die Mehrheit Ihrer Website-Besuche von den großen Stat-Sammlern aufgrund von verfolgt werden kann und wird Social-Sharing-Schaltflächen (weit verbreitet) und Anzeigen, die fast überall zu finden sind. Ich frage mich nur, wie wertvoll möglicherweise irreführende Informationen aus stark zwischengespeicherten js-Anfragen sind – ich ‚ wette nicht sehr, daher gehe ich davon aus, dass sie nicht ‚ Versuchen Sie nicht, Personen mit CDN-bedientem JS persönlich zu identifizieren.
- Es ist nicht so zwischengespeichert, wie man denkt – Wenn Sie Schriftarten so einbetten, wie Google es bevorzugt, indem Sie einen CSS-Link zu fonts.googleapis einfügen. com, jede einzelne Seitenansicht öffnet eine Verbindung zu Google (Sie können sie in Firebug sehen). Ist ‚ egal, ob zwischengespeichert oder nicht. Zum Download: Können Sie mich auf einen Ort verweisen, an dem ich die Schriftarten im hochwertigen EOT-, Woff-, TTF- und SVG-Format herunterladen kann (gleiche Versionen, die Google liefert, keine externen Konverter)?
Antwort
Die Verwendung von CDN (s) zum Teilen Ihrer Abhängigkeiten auf vielen Servern wie diesem stellt im Wesentlichen einen Kompromiss zwischen Bandbreite und Latenz dar, vorausgesetzt, Sie kümmern sich nur darum über die Leistung.
Ich gehe übrigens davon aus, dass die Alternative nicht einfach darin besteht, sie lokal zu hosten, sondern sie mit einer anderen lokalen Anforderung zu verketten – es gibt normalerweise keinen guten Grund, nicht zu verketten, wenn Sie können.
Wenn die Bandbreite unendlich ist, sollten Sie NICHT scherzen, da Sie so langsam sind wie Ihr langsamster Dienst – da Latenzen mit genügend Diensten nicht perfekt vorhersehbar sind, selbst wenn sie schnell sind, Sie Sie brauchen nur ein bisschen Pech, um ein langsames Laden der Seite zu verursachen.
Wenn die Latenz 0 beträgt, kann die Verteilung der Last auf viele Server die Bandbreite verbessern, indem viele Serve verwendet werden rs (nicht so hilfreich, da die Bandbreitenbeschränkungen wahrscheinlich in der Nähe der Clients und nicht der Server liegen), aber was noch wichtiger ist, es kann die übertragene Datenmenge geringfügig reduzieren, indem die Effektivität des Cachings erhöht wird.
Dies hängt davon ab Ihr Szenario, aber ich würde im Allgemeinen erwarten, dass die Latenz eher ein Problem als die Bandbreite darstellt, es sei denn, Ihre Skripte sind wahnsinnig groß (was jquery nicht ist). Zu diesem Zeitpunkt ist es normalerweise schneller, jquery als Teil einer verketteten lokalen Datei zu hosten.
Gründe, nicht lokal zu hosten, sind z. B. wenn Sie für die Bandbreite bezahlen oder auf einem langsamen Server hosten ( Ihre Verbindung zum Client ist auf Ihrer Seite ein Engpass, nicht auf der des Clients, oder Sie wissen, dass Ihre Clients eine sehr geringe Bandbreite haben (z. B. Low-End-DSL oder Modems – Mobilgeräte haben tendenziell mehr Latenzprobleme als Bandbreitenprobleme). oder Ihre Kunden zahlen für die Bandbreite (z. B. für Mobilgeräte), und Skripte sind ein so auffälliger Teil davon, dass geringfügiges Caching eine Rolle spielt (nicht wahrscheinlich).
In jedem Fall: weitaus relevanter ist, ob Sie “ Ich habe zuerst die Grundlagen behandelt. geeignete Caching-Header, Verkettung, Minimierung und Zippen (vorzugsweise mit einem hohen Komprimierungsverhältnis). Und hier ist der springende Punkt: Wenn Sie dies NICHT tun, wird dies zumindest das CDN tun, so dass es gewinnt …
TL; DR: Wenn Sie Verkettung + Minimierung + Gzipping + Caching haben, dann kleine Skripte lokal bereitzustellen ist schneller als von einem CDN trotz der besseren Leistung des CDN – aber nur, wenn Sie Ihre Hausaufgaben gemacht haben, möglicherweise nicht beim ersten Seitenladen, und es gibt definitiv Ausnahmen von dieser Regel.
Kommentare
- Übrigens gibt es einige Byte-Späne, die mit nur einer Anfrage gewonnen wurden: Header allein belaufen sich auf fast 1 KB, was bei einer Nutzlast von 28 KB nicht ‚ nichts ist. Gzip funktioniert besser mit mehr Kontext, wodurch weitere 0,5 KB eingespart werden. TCP-, DNS- und HTTPS-Overheads können alle Fügen Sie hier oder da einfach eine KB hinzu, und schlimmer noch, RTT ‚ s. Deshalb ist ‚ für kleine Dateien wie diese ein CDN ein nicht so wie schnell wie Sie vielleicht denken.
Antwort
Die Verwendung der von Google gehosteten jQuery-Bibliothek ermöglicht es Ihrer Seite, zu sein schneller geladen. In der Tat wird die Bibliothek zur gleichen Zeit Ihrer Seite geladen wie nach.
Kommentare
- Aber wie wirkt sich das auf das Laden der Seite aus?
- Lokale Bibliotheken werden auch geladen, während die Seite geladen wird – In beiden Fällen beginnt der Download des Assets, wenn der (moderne) Browser das Code-Snippet sieht, das den Download auslöst. Dies geschieht normalerweise, bevor das gesamte Dokument heruntergeladen wird . In diesem Firebug-Screenshot finden Sie ein Beispiel