Skripte / Stylesheets: Lokal konsolidieren oder CDN verwenden?

9

Ich kann natürlich einige eigene Tests durchführen, aber ich hoffe, dass ich von einigen Leuten mit Erfahrung aus der Praxis auf mindestens mittelgroßen Websites erfahren werde.

Zwei der Punkte auf jeder "Top 10" -Liste für die Optimierung von Websites / Bandbreite sind:

  • Konsolidiere so viel JS und CSS wie möglich in einer einzigen Datei (um Rundreisen zu reduzieren); und
  • Verwenden Sie ein Content Delivery Network (um Bandbreite zu sparen / Downloads zu beschleunigen).

Heutzutage können Sie fast jedes wichtige Skript auf dem CDN von Google oder Microsoft (oder beiden) finden. Sie können sogar einige ziemlich schwere Gegenstände wie jQuery ThemeRoller-Pakete finden. Einer der Hauptvorteile der Verwendung dieser CDNs gegenüber einem privaten CDN-Konto wie Amazon S3 besteht darin, dass viele Besucher diese Skripts bereits von einer anderen Website zwischenspeichern lassen. Selbst wenn dies nicht der Fall ist, ist es schwer, die Leistung einer Website wie Google zu übertreffen.

Sagen wir also, ich möchte diese öffentlichen CDNs verwenden, anstatt für einen persönlichen CDN-Account extra zu zahlen, um die Leistung zu verbessern, die besser oder schlechter oder gleich sein könnte. Und ich würde sagen, ich verwende eine Menge JS / CSS-Dateien, die alle auf diesen öffentlichen CDNs stehen: jQuery, jquery-ui, ein Thema, jQuery TOOLS und vielleicht noch ein paar andere. Zusätzlich zu diesen kann ich mehrere Skripte verwenden, die nicht auf einem öffentlichen CDN verfügbar sind, wie Superfish und jquery.approach und HoverIntent. Ziemlich gewöhnliche Sachen wirklich. Es scheint, dass ich zwei sich gegenseitig ausschließende Optionen habe:

  • Informationen zu den oben aufgeführten Skripts finden Sie in den öffentlichen CDNs. Der Vorteil ist, dass ich die Bandbreite anderer nutzen kann und die Popularität einiger dieser Skripte ausnutzen kann. Der Nachteil ist, dass der Client nicht weniger als 7 Rundreisen für alle diese Dateien machen muss (4 individuelle JS, 1 CSS und je 1 CSS und JS für die konsolidierten / reduzierten lokalen Sachen). Oder ...
  • Cram alles in zwei monolithische minimierte Dateien (eine für JS und eine für CSS) und alles von meinem eigenen Webserver zu bedienen. Der Vorteil ist, dass es nur zwei Rundreisen gibt (mindestens 66%). Der Nachteil ist natürlich, dass ich jetzt selbst einen viel größeren Betrag bedienen muss.

Das scheint eine schwierige Entscheidung zu sein, und ich denke, der einzige Weg, um wirklich zu verstehen, was besser funktioniert ("besser" ist eine Funktion der Ladezeiten und der allgemeinen Benutzererfahrung), ist es tatsächlich in freier Wildbahn zu veröffentlichen sehen was passiert.

Also musste jemand diese Wahl schon einmal treffen, und wenn ja, was haben Sie gewählt und warum und wie gut ist es ausgegangen? Oder, wenn jemand versucht hat, die Aufgabe des Testens in einer isolierten Umgebung zu lösen, wie sind Sie dann vorgegangen und was waren die Ergebnisse?

P.S. Dies ist alles eine Art "Web Application" Typ der Website - mit anderen Worten, nicht sehr medienlastig, aber kann eine Tonne von Stilen und Skripten enthalten, die tatsächlich einen erheblichen Teil der Seitengröße ausmachen. Daher halte ich das für mehr als nur eine intellektuelle Übung.

    
Aaronaught 11.12.2009, 19:13
quelle

3 Antworten

4

Besuche Focus.com in Firebug

Wir haben einen hybriden Ansatz gewählt. Wir ziehen jQuery von Google und der Rest unserer css und js sind kombiniert / minimiert und serviert S3. Wir haben den Combo- / Minification-Schritt über unseren Build-Prozess automatisiert und jede Version wird in einem eigenen (nummerierten) Verzeichnis bereitgestellt, damit Browser unsere Ressourcen aggressiv cachen können.

Wir entscheiden uns dafür, jQuery von Google zu entfernen, um den 40K-Treffer aufgrund der Häufigkeit von Code-Updates auf unserer Website zu speichern (etwa alle zwei Wochen). Vor dem Start haben wir eine Reihe von Tests verschiedener Konfigurationen durchgeführt und keine signifikanten Leistungsunterschiede festgestellt.

    
DrewM 11.12.2009, 20:47
quelle
0

Ich würde denken, dass alles auf den Verkehr ankommt, den Sie erwarten. Wenn Sie eine Tonne Uniques pro Monat erhalten, gibt es einen finanziellen Anreiz, zumindest Google oder Microsoft JS / CSS zu bedienen und sie die Bandbreitenkosten tragen zu lassen.

    
Darrell Brogdon 11.12.2009 20:04
quelle
0

Microsoft hostet eine Reihe von jQuery- und verwandten Dateien auf ihrer CDN hier .

    
rboarman 11.10.2010 16:18
quelle