2010-11-25 6 views
0

Hintergrund: Ich bevorzuge alle meine CSS und Javascript in separaten .css/.js-Dateien zu halten. (Grund ist, dass sie von vielen Seiten gemeinsam genutzt werden. Auf diese Weise würden statische Daten in diesen Dateien nicht mit jeder Seitenansicht übertragen). Dies führt dazu, dass einige Seiten 5-6 "link rel" - oder "script type" -Anweisungen haben.Website Seite Ladezeit und keep-alive http Verbindungen

Nun normalerweise, würde dies, dass Browser bedeutet für jeden dieser css/js Dateien separaten Antrag stellen würde und effektive Ladezeit erhöhen kann - mir sagen werden 5X für 5 Hin- und Rückfahrt-Anfragen (bitte korrigieren, wenn ich falsch bin Hier).

Meine Frage ist:

1) Haben moderner Browser keep-alive anfordern Verbindungen standardmäßig?

2) Wenn dies der Fall ist, bedeutet dies, dass zusätzliches Datei-Sourcing (css/js) die effektive Ladezeit nicht erhöht? Zum Beispiel - nimmt der Server an, dass der Browser die css/js-Dateien anfordert und somit weiter sendet (wodurch eine zusätzliche Anfrage vermieden wird)?

Kurz gesagt - kann jemand erklären, wann würde die Ladezeit nicht durch separate css/js Dateien erhöhen und wenn es immer zunimmt, dann ist die Ladezeit proportional zur Anzahl der Dateien erhöht?

Grüßen,

JP

Antwort

0
  1. Ja, Browser über HTTP/1.1 sollte Keep-Alive-Verbindungen werden unter Verwendung von im Allgemeinen.

  2. Der Server wird es nicht unbedingt annehmen; Das Keep-Alive sollte bedeuten, dass es keine separate DNS-Suche gibt - die Datei wird noch angefordert.

Wenn richtig konfiguriert ist, sollten Sie finden (die mit Firefox + Firebug beispielsweise überprüft werden kann), dass die erste Anforderung einen normalen Download dieser Dateien erzeugt, aber nachfolgende Anfragen generieren HTTP 304 (File Modified Nicht) -Anforderungen Der Inhalt hat sich seit dem letzten Laden nicht geändert und sollte daher im Cache verfügbar sein.

Wenn es sich um ein echtes Problem handelt, sollten Sie sich mit Expires-Headern befassen, um eine lange Lebensdauer der Dateien anzugeben, sodass die Anforderung nicht einmal ausgeführt wird (nicht einmal die Anforderung, ob die Datei geändert wurde)

+1

DNS-Lookups werden immer noch zwischengespeichert, unabhängig von Keep-Alive-Verbindungen oder nicht. Was Keep-Alive vermeidet, ist zusätzlicher Aufwand für die Erstellung von TCP-Verbindungen. Keep-Alive hat auch keine Auswirkungen auf das Zwischenspeichern der Browser-Seite ("File Not Modified"), ich bin nicht sicher, warum Sie das denken. – intgr

+0

Argh, ja, das ist die, die ich meinte, danke :) – Arantor

+0

Punkt 1. ist gut zu wissen. Mir war auch "Expires" nicht bewusst (aber ich war auf der Suche nach so etwas). Kannst du mir auch sagen - wenn ich 5 css/js-Dateien von meiner Hauptseite (alle auf meinem Server) beziehe, werden die 5 Anfragen seriell oder parallel gemacht? –

Verwandte Themen