Wann und wann nicht ein CDN zu verwenden

13

Ich arbeite an einer Webanwendung, die ein paar kleine GIF-Bilder auf den Bildschirm lädt. Ich benutze einen relativen Pfad, was bedeutet, dass sie von demselben Webserver geladen werden, der die PHP-Seite bedient. Die Operation ist augenblicklich und ich befinde mich auf einem anderen Kontinent als der Webserver.

Ich habe gerade ein CDN-Netzwerk für dieses (Cloudfront) getestet, da es eine gute Idee ist, statische Dateien näher an den Benutzer heranzuführen. Es dauert jedoch ungefähr eine halbe Sekunde, bis alle diese Dateien auf dem Bildschirm angezeigt werden. Ich muss jetzt natürlich einen absoluten Pfad verwenden (https://xyzvf.cloufront.net/images/)

Warum das? Ist der absolute Weg ein Problem? Ich reduziere die HTTP-Anfragen auf meinen eigenen Server, was eine gute Sache ist, aber diese Verzögerung ist ärgerlich. Ist CDN dafür nicht geeignet?


quelle
4
Es hängt ziemlich stark davon ab, wo sich das CDN befindet. Wenn Sie viele kleine Bilder haben, ist es eine Option, diese zu einem Sprite zu kombinieren? Das würde nur eine einzige Anforderung zum Laden aller Bilder bedeuten.
Sie haben folgende Standorte: michaelgaigg.com/blog/images/amazon-cloudfront.jpg Ich bin in Europa, und das Laden der Bilder von meinem Webserver in den USA ist schneller als das Laden aus Deutschland oder einem anderen europäischen Standort, von dem Amazon mich bedient. Oder ist vielleicht nicht die Ladezeit das Problem sondern etwas anderes? Die Verwendung eines Sprites ist eine großartige Idee, danke.
Sie können auch eine protokolllose URL mit dem Hostnamen verwenden, z. B. "//xyzf.cloudfront.net/images". Auf diese Weise können Sie ISP- und Unternehmens-Proxy-Caches zum Zwischenspeichern von Nicht-SSL-Versionen der Images nutzen. Dies kann einen enormen Vorteil sowohl für Ihr Besuchererlebnis als auch für die Server- / Bandbreitenlast haben. Die Besucher unserer Website stammen fast ausschließlich aus US-amerikanischen Finanzinstituten, und wir stellen fest, dass 85% der Besucher hinter einer Art Caching-Proxy stehen. YMMV, testen Sie also Ihre eigene Site und Ihren eigenen Traffic.
Malayter

Antworten:

6

Ein Problem kann DNS sein oder keep-alive- das heißt, der Browser verfügt bereits über die IP-Adresse Ihres Servers und hat eine Verbindung zu diesem, während der Name des CDN-Servers aufgelöst und dann eine neue Verbindung hergestellt werden muss oder beides ist die Verzögerung, die Sie sehen.

Spriting, obwohl immer noch eine gute Idee, würde diesen Problemen nicht helfen. In der Tat kommt keine Lösung in den Sinn. Der einzige Komfort ist, dass eine Verzögerung von einer halben Sekunde nicht viel länger werden würde, wenn Sie tausend Bilder (und CSS-Dateien und JS-Dateien sowie alle anderen statischen Dateien, die Sie benötigen) hätten und Ihren Ursprungsserver nicht mehr belasten würden, wenn a Tausende weitere Benutzer haben es geschlagen.

Malvolio
quelle
Das klingelt. Ich sollte erwähnen, dass der erste Aufruf an den CDN-Server erfolgt, wenn das erste Image benötigt wird, wie in der Mitte der Seite.
Ah, dann erhalten Sie möglicherweise eine bessere (wahrgenommene) Leistung, wenn Sie sehr früh auf der Seite einen Verweis, einen Verweis auf das CDN, machen. Am besten fügen Sie Ihre CSS-Dateien in das CDN ein und fügen die linkTags in den headAbschnitt ein, damit der Verbindungsprozess sofort beginnt.