Ladezeit minimieren

Mark_L

Angesehenes Mitglied
Hi Forum,

seit ein paar Monaten erstelle ich eine Page mit zahlreichen Textinhalten, ähnlich Wikipedia. Nun bin ich dabei die Usability für meine User zu verbessern.

Bei einem habe ich leider keinen Ansatz; und zwar geht es mir um die Ladezeit, welche häufig kritisiert wurde. Bilder werden nun automatisch komprimiert, jedoch liegt die Antwortzeit der Seite immer noch bei 1,75 Sekunden, was deutlich zu lang ist.

Der Seitenaufbau ist auch nicht gerade prickelnd....
sad.gif


Hab ihr Tipps, wie man die Seite besser zum "laufen" bringt, damit die Ladezeit unter Sek. bleibt! Liegt dies evtl. am Server.


EU-ASIEN.DE

Danke für eure Tipps
 
Die Zeit bis zur Server-Erstreaktion (mit FF-Lori auf der Startseite gemessen - DSL 16000 - Telekom) liegt fast immer über einer Sekunde.

Die Gesamtladezeit liegt meistens bei über zwei Sekunden.


Eigentlich ist das schon ziemlich langsam. Sind da Datenbankzugriffe dabei, die relativ langsam sind?

Bei Server-Daten ist die Erstreaktion im 0.1-Sekunden-Bereich, die Seiten sind meistens innerhalb einer Sekunde da.

Hier bei Ayom ist die Erstreaktionszeit auch < 0.5 Sekunden.

Da ich da die interne Verarbeitung nochmals genau nachkontrollieren kann, weiß ich, daß die Seitenverarbeitung zum Zeitpunkt der Erstreaktion vollständig abgeschlossen ist.

Sprich: Da DSL 16000, müßte man bei einem langsameren Zugang auf die eine Sekunde nochmals die Transportzeit aufschlagen, das rendert der Browser und fordert als nächstes die anderen Seitenelemente an. Bei DSL 1000 müßte das merklich langsamer sein.
 
Hallo Mark,

da gibt es gleich vier Optimierungsbereiche:

1. Verbindung: also die Ping Zeiten sind mit aus einem Uni-Netz gemessenen 17,x ms sehr sehr gut. Den Durchsatz habe ich nun nicht gemessen, der wird vermutlich auch gut sein.

2. Server: scheint bei 1&1 zu stehen. Hm, da müsste man schauen, ob eine Firewall teilweise blockiert (iptables), und wie der Apache konfiguriert ist. Optimierungsmöglichkeiten hier erfordern aber zumeist einen Rootzugriff.

3. Verarbeitung auf dem Server: werden die Inhalte aus einer Datenbank generiert? Jedenfalls scheint ja php verwendet zu werden, auch bei den html Seiten. Falls da keine wichtigen Funktionen mit verbunden sind, wäre Caching hier wohl eine Wahl - am besten als Caching der gesamten HTML-Ausgabe, oder zumindest das Cachen der MySQL-Anfragen. Da es aber für mich im Wesentlichen nach einer Text- Bildausgabe ausschaut, würde ich das gesamte Cachen empfehlen.

4. Content Delivery: Oh, da sieht es besser noch sehr unoptimiert aus. Stichpunkte wären das Komprimieren und Zusammenfassen von CSS, Javascript und HTML, z.B. mit mod_deflate oder gzip. Seitengrößen von ca. 200 kB sollten auf jeden Fall komprimiert werden. Zudem Einführung von Last-Modified und dem Header 304 Not Modified, gerade für CSS, Bilder, JS, damit die Files nicht immer neu geladen werden müssen und das Rendern im Browser verkürzt werden kann.

Ein gutes Tool zur Überprüfung der Verbesserung in diesem Bereich wäre YSlow als Plugin des FF-Plugins Firebug. YSlow gibt dir gerade die Note C, da herrscht noch viel Verbesserungspotential.

Soviel erstmal auf die Schnelle, bei den einzelnen Schritten könnte man dann genauer drauf schauen, was man da optimieren kann.

Mit Änderungen in den Bereichen 3. und 4. konnte ich bei einem Projekt massive Geschwindigkeitssteigerungen erreichen und zugleich den Traffic bei steigenden Visits mehr als halbieren.

mfg, Chris

 
Hi,

sorry für die Verpätung.

Vielen Dank für eure Super Antworten! Werde das ganze mal umgehen überprüfen.

Gruß
 
Ich habe mir mal die Seite angeschaut. Du verbaust relativ kleine JPG-Graphiken mit 25KByte Dateiumfang?
Bsp: http://www.eu-asien.de/assets/thumbs/thumb...erne-marked.gif

Versuch doch mal, die Rohdaten in einem Graphikprogramm mit einer niedrigern Qualität nach jpg zu speichern. Bei den Graphiken auf der Startseite liegt meiner Ansicht nach eine Ersparnis von 50% drin.

Dann:
<style type="text/css" media="all">
@import url("/assets/templates/euas/all.css");
@import url("/assets/templates/euas/op_moz.css") all;
@import url("/assets/templates/euas/lightbox.css");
</style>

Ja, das heisst, dass ein Seitenaufruf gleich noch drei CSS-Dateien mitlädt? Warum bloss?

Und noch JS-Dateien?
<script type="text/javascript" src="/assets/templates/euas/js/lightbox.js"></script>
<script type="text/javascript" src="/assets/templates/euas/js/formtext.js"></script>
<script type="text/javascript" src="/assets/templates/euas/js/submenu.js"></script>

USW...
Eventuell kannst Du CSS in eine Datei zusammenfassen und Dito für das JS? Das würde die Last schon deutlich verringern.

War mir gerade noch auffällt:
./assets/tmp/small-1051.jpg

Du nutzt relativ viele kleine Graphiken ohne jegliche Grössenangaben?

Dir ist schon bewusst, dass dann der Browser die Graphik vollständig lädt, nur um die Grösse zu ermitteln und erst nachher die Ausgabe rendert? Das heisst, Grössenangaben könnten dazu führen, dass das Dokument "schneller" aufgebaut wird. Also der Nutzer schon ein Dokument als solches sehen kann, auch wenn die Bilder noch am Laden sind.

Das wären meine Punkte...

Also bin Christians Meinung bei seinen Punkten bei 3 und 4, aber sehe zumindest bei den putzigen kleinen Bildern noch die Möglichkeit mit Grössenangaben das Rendern zu beschleunigen.
 
Zwei (bzw. eine) ganz blöde Sachen:

Du bindest mit @import die JS-Dateien ein.
Mein Firebug (Netzwerk) meckert beim laden der Seite, das er die Dateien loading.gif und close.gif nicht findet.
Die beiden Grafiken werden in der lightbox.js angefordert.
Lautr Firebug werden für loading.gif ca 800ms und für close.gif ca 1.5s Aufwand gebraucht.
 
Hallo Mark_L,

Du benützt "XHTML 1.0 Srtict" und "charset=utf-8" und hast dennoch
die alte Umschreibung für die Ö/Ä/Ü und ß drin, einfach ändern und schon muss
der Browser weniger verarbeiten.
Deine meta name="description" ist zu lang.
<meta name="revisit-after" content="7 days" /> kannst Du meiner Meinug nach löschen.
Alt-Tags fehlen - zum Teil angelegt (alt=""), aber zwischen den " " sollte schon was stehen.
wink.gif


LG
hanseng
 
Hi,

ist das ein dedizierter Server oder Shared Hosting (irgendein Webspace-Paket)?
Bei ersterem würde ich mal schauen ob du nicht sowas wie memcached verwenden kannst - das entlastet den Server extrem, vor allem bei Inhalten die normalerweise aus der DB generiert werden.

Viele Grüße
Christian
 
Zurück
Oben