Das Bereitstellen von Javascript-Bibliotheken von einem CDN anstelle Ihres eigenen Servers bietet enorme Vorteile. Weniger Arbeit für Ihren Server, Möglichkeit für das CDN, eine Kopie näher am Benutzer als Ihr Server zu haben, aber vor allem eine gute Chance, dass der Browser Ihres Benutzers sie bereits von dieser URL zwischengespeichert hat. Letzteres bedeutet weniger Gesamtarbeit für alle, daher ist es eindeutig ein Gewinn für alle Beteiligten. Je öfter wir (Entwickler) uns auf die CDNs verlassen, um unser Javascript bereitzustellen.
Die beliebten Javascript-CDNs (Google, Microsoft, andere?) Hosten jedoch nur eine geringe Anzahl von Dateien. Für andere haben wir die Wahl, sie selbst zu hosten oder ... den Versionsverwaltungsserver als eine Art CDN zu verwenden. Es ist unwahrscheinlich, dass Github oder ähnliches über einen geografisch verteilten Cache mit Dateien verfügt, die für die globale Bereitstellung optimiert sind. Wenn dies jedoch üblich ist, besteht eine gute Chance, dass der Browser des Benutzers es zwischengespeichert. Das Argument, die Arbeit von unseren Servern auf Github zu verlagern, ist nur gültig, wenn Github sich freiwillig dazu bereit erklärt hat.
Ist es also übliche Praxis? Sollten wir uns gegenseitig dazu ermutigen? Stört es Github? Haben sie eine offizielle Richtlinie angegeben?
quelle
Antworten:
Sie sollten dies nicht für JavaScript-Dateien tun, wenn Sie Wert auf Leistung oder IE9-Kompatibilität legen.
GitHub liefert seine "rohen" Dateien nicht mit einem in Zukunft ablaufenden Header. Ohne die Möglichkeit des Cross-Site-Caching verlieren Sie den größten Vorteil der Verwendung eines öffentlichen CDN zum Hosten Ihres JavaScript. Tatsächlich ist die Verwendung von GitHub als CDN langsamer als das einfache Hosten der Dateien auf Ihrem eigenen Server nach der ersten Anforderung jedes Benutzers für die Datei (vorausgesetzt, Sie konfigurieren das Caching auf Ihrem Server korrekt).
Ein weiteres Problem ist, dass GitHub keine "Roh" -Dateien mit einem Inhaltstyp-Header bereitstellt, der dem tatsächlichen MIME-Typ der Datei entspricht. In IE9 (und möglicherweise in anderen Browsern / Proxys / Firewalls / usw.) werden JavaScript-Dateien, die nicht mit dem richtigen Inhaltstyp bereitgestellt werden, standardmäßig blockiert. Sie können dies in Aktion auf der BlockUI-Demoseite sehen, zum Beispiel:
quelle
Das Verknüpfen mit "rohen" GitHub-Dateien weist einige Probleme auf, die in der Antwort von Dave Ward beschrieben sind .
Ich schlage vor, Sie schauen sich optional GitHub-Seiten an.
Lesen Sie diesen Artikel:
GitHub als CDN. Zwischenspeichern Sie Ihre Javascripts, Stylesheets und Web Assets mit GitHub-Seiten.
quelle
Dies wurde kürzlich in den Support-Foren von Github gefragt , und die offizielle Antwort war, dass es in Ordnung ist .
Trotzdem stimme ich anderen Antworten zu: Github war nie wirklich als CDN gedacht , während Google und Microsoft dafür eine spezifische Infrastruktur haben.
quelle
Es ist in Ordnung für Prototyping / persönliche Sachen, aber für die Produktion würde ich mir Folgendes ansehen:
http://www.cdnjs.com/
http://cachedcommons.org/- nicht mehr verfügbarquelle
Ich mache es jetzt seit Monaten, hatte zuerst einige Bedenken, aber es ist total cool, wenn Sie keine Probleme damit haben, dass Ihre Dateien öffentlich verfügbar sind. Verwenden Sie minimierte Versionen, wenn Sie sich interessieren.
Aber dennoch - Google & MS regieren den Speicherplatz für jQuery & jQuery-Vorlagen - also verwende ich sie dafür.
quelle