Angenommen, ich habe eine Web-App, die jQuery verwendet. Ist es besser, die erforderlichen Javascript-Dateien zusammen mit den Dateien meiner Website auf meinen eigenen Servern zu hosten oder auf die CDN von jQuery zu verweisen (Beispiel: http://code.jquery.com/jquery-1.7.1.min.js ) ? ?
Ich kann Profis für beide Seiten sehen:
- Wenn es auf meinen Servern ist, ist das eine externe Abhängigkeit weniger; Wenn jQuery ausfällt oder die Hosting-Struktur ändert, bricht meine App. Aber ich habe das Gefühl, dass das nicht oft vorkommt. Dazu müssen viele kleine Websites vorhanden sein, und das jQuery-Team möchte vermeiden, dass sie beschädigt werden.
- Wenn es sich auf meinen Servern befindet, ist dies eine externe Referenz, die jemand als Sicherheitsproblem bezeichnen könnte
- Wenn es extern referenziert wird, muss ich mir keine Gedanken über die Bandbreite machen, um die Dateien bereitzustellen (obwohl ich weiß, dass es nicht so viel ist).
- Wenn es extern referenziert wird und ich diese Website auf vielen Servern bereitstelle, die ihre eigenen Kopien aller Dateien benötigen, muss ich mich daran erinnern, eine Datei weniger zu kopieren / aktualisieren.
web-development
javascript
css
Mr. Jefferson
quelle
quelle
Antworten:
Sie sollten beides tun:
Beginnen Sie mit dem Hosting von einem CDN wie dem von Google, da dieser wahrscheinlich eine höhere Verfügbarkeit aufweist als Ihre eigene Website und für die schnellste Antwortzeit konfiguriert ist. Darüber hinaus verwendet jeder, der eine Seite besucht hat, die mit dem CDN verlinkt, seine zwischengespeicherte Kopie der Datei, sodass er nicht einmal eine Kopie erneut herunterladen muss, wodurch das erstmalige Laden noch schneller wird.
Fügen Sie dann einen Fallback-Verweis auf Ihren eigenen Server hinzu, falls der CDN ausfällt (unwahrscheinlich, aber sicher ist sicher). Fallbacks sind relativ einfach zu verstehen, müssen jedoch an das verwendete Skript angepasst werden:
Stellen Sie sicher, dass Sie nicht
</script>
irgendwo innerhalb eines<script>
Elements schreiben , da dies das HTML-Element schließt und ein Fehlschlagen des Skripts verursacht. Die einfache Lösung ist es, einen umgekehrten Schrägstrich als Escape zu verwenden:<\/script>
.Ein Grund mehr, beides zu tun:
Wenn Sie eine beliebte CDN Pick ist es sehr unwahrscheinlich , dass es jemals eine Ausfallzeit haben werden, aber in der weit weit Zukunft (~ 18 Monate ab jetzt gegeben Moores Gesetz ) , wenn die Hosting - Formatänderungen oder die Adresse eingestellt wird , oder die Wenn sich das Netzwerk hinter einer Paywall befindet oder etwas anderes, funktioniert Ihr Link möglicherweise nicht mehr wie besehen. Wenn Sie ein Fallback verwenden, haben Sie ein wenig Zeit, sich auf ein neues Format für das Hosting einzustellen, bevor Sie jede Website, die Sie jemals erstellt haben, erneut durchgehen und die CDN-Links ändern müssen.
Ein weiterer Grund, beides zu tun:
Kürzlich wurde ich von einer Reihe von Internetausfällen heimgesucht. Ich konnte weiterhin lokal an Projekten arbeiten, in denen ich lokale Kopien von Skriptressourcen verknüpft hatte, und stellte schnell fest, dass es eine Reihe von Projekten gab, für die lokale Kopien verknüpft werden mussten.
quelle
Ich hatte die gleiche Frage, las diesen Artikel und kam auf die Idee, Google meine jQuery-Bibliothek hosten zu lassen.
In dem Artikel werden die Hauptvorteile der Bereitstellung Ihrer Bibliotheken durch das Content Delivery Network (CDN) von Google aufgeführt:
Denken Sie daran, dass die beiden Punkte, die Sie als Profis für das Hosten Ihrer eigenen Bibliothek aufgeführt haben, Google als Host für die Cloud-Version fungieren. Google weiß, was sie tun, und ist in Bezug auf Verfügbarkeit und Sicherheit vertrauenswürdig. Bei der Beantwortung dieser Frage macht @zzzzBov jedoch eine sehr gute Figur. Er empfiehlt, auch eine lokale Kopie der Bibliothek zu speichern und diese in dem unwahrscheinlichen Fall standardmäßig zu verwenden, dass auf die CDN-Version aus irgendeinem Grund nicht zugegriffen werden kann.
quelle
Persönlich nehme ich einen Hinweis von http://html5boilerplate.com/
Dadurch wird die jQuery-Hauptdatei von Google abgerufen. Wenn sie jedoch aus irgendeinem Grund nicht geladen wird, wird sie in der nächsten Zeile von Ihrem eigenen Server geladen.
quelle
https://
.Es ist besser, ein CDN zu verwenden, und wenn dieses CDN zufällig Google ist, umso besser - wie sowohl @CFL_Jeff als auch @Morons festgestellt haben.
Ich füge diese Antwort hinzu, um auf etwas hinzuweisen, das oft übersehen wird, wenn auf etwas anderes verwiesen wird, wodurch die Warnung vor gemischten Inhalten vermieden wird . Erwägen Sie die Verwendung protokollloser URLs, z.
Es gibt immer noch einige Support-Probleme bei der Verwendung protokollloser URLs. Sehen Sie sich daher auch die Antworten unter an. Kann ich alle meine http: // -Links auf nur // ändern? auf SO, aber versuchen Sie zumindest, auf irgendeine Weise mit möglichen Warnungen zu gemischtem Inhalt umzugehen .
quelle
Sie sollten auf die API-Bibliothek von Google verweisen .
Der Hauptgrund dafür ist, das Laden Ihrer Seite zu beschleunigen . Wenn Ihr Benutzer bereits eine andere Site besucht hat, die auf dieselbe Bibliothek verweist, wird sie bereits im Browser-Cache gespeichert und muss überhaupt nicht heruntergeladen werden .
quelle
Ich könnte mich irren, aber das Implementieren von document.write überschreibt alles, was das DOM hat. Da es eine gute Praxis ist, JavaScript-Dateien am Ende des Körpers zu platzieren,
Ich schlage die folgende Methode vor, die auf vorherigen Antworten basiert:
quelle
Ich möchte hinzufügen, dass das Hosten einer lokalen Kopie eine bewährte Methode ist, da keiner der oben genannten Punkte irgendetwas im Zusammenhang mit einer sicheren Haltung angibt, bei der die geografische Position und die strikte White-Listing-Methode unerlässlich sind. Wenn diese Datei nicht lokal gehostet wird, wird möglicherweise die Sicherheit Ihrer Kunden beeinträchtigt.
quelle