2009-07-31 6 views
4

Ich versuche, alles zu tun, um die Ladegeschwindigkeit meiner Seiten zu erhöhen, und insbesondere die Ajax geladenen Komponenten.DOMContentLoaded/load (event), wie man die Geschwindigkeit erhöht.

In Firebug, mein heraus gesetzt sieht aus wie diese

Ich bin nicht ganz sicher, ob ich das richtig bin zu lesen, aber es ist entweder + 2.19s für DOMContentLoaded (oder es mayonly 0,8 sein, wenn wir sollten das von der Warteantwort abziehen).

Aber dann 4.67s für das 'Laden' (Ereignis).

Beide scheinen wie lange Ladezeiten.

Ich konnte nicht herausfinden, was diese Art von Zeiten verursachen würde. Diese Statistiken sind vom Laden einer geraden HTML-Seite, die ich normalerweise über Ajax laden. Aber das ist nur der HTML-Code. Kein Javascript auf der Seite, und die Seite wird direkt geladen, nicht durch eine Ajax-Anfrage.

Allerdings, wenn ich diese Seite über Ajax laden, erkenne ich eine erhebliche Verzögerung, während die Seite versucht, zu laden.

Irgendwelche Vorschläge?

Ich habe durch die HTML in IE Debugbar gesucht, und alles sieht überraschend sauber aus. Es gibt 30 Bilder auf der Seite. Könnte das das 'load' Event sein? Und wenn ja, gibt es eine Möglichkeit, dies zu beschleunigen?

Insbesondere, da der Benutzer diese Seite nie direkt laden wird, sondern nur über eine Ajax-Anfrage, ist es eine Möglichkeit, die Seitenlade-Leistung in Ajax zu verbessern. Das Problem ist nicht mit dem Ajax-Lade-Skript, sondern speziell mit der HTML-Seite.

---------------------- EDITTED ----------------------- ------- Die Ergebnisse der Seite werden in einen jQuery-Zyklus geladen, in dem mehrere Bilder gleichzeitig angezeigt werden, so dass die Verwendung von Lazyloader eine ziemlich schreckliche Benutzererfahrung bietet. (angenommen, es sind die Bilder, die dieses Problem verursachen).

+0

Sind die Bilder abhängig vom Ajax-Ereignis oder sind sie immer die gleichen 30 Grafiken? – jeroen

Antwort

6

Those firebug Statistiken sagen Sie, dass:

  • Es 2,1 Sekunden von der Zeit in Anspruch nimmt Sie die Anfrage für Ihren serverseitigen Code begann eine Antwort
  • Es 19ms dann zu starten Rückkehr nimmt die zum Download Antwort (dh die HTML)
  • 71ms oder so danach das DOMContentLoaded Ereignis ausgelöst
  • Nachdem die Seite vollständig geladen (nachdem die Bilder alle heruntergeladen wurden), wird das Load-Ereignis ausgelöst.

DOMContentLoaded wird ausgelöst, sobald das DOM bereit ist. Das Ladeereignis wartet, bis die ganze Seite geladen ist (einschließlich aller externen Ressourcen wie Bilder)

Die meiste Zeit in Ihrer Anfrage (außer dem Herunterladen der Bilder) wird darauf gewartet, dass der Server den HTML-Code erstellt. Vielleicht kann Ihr serverseitiger Code für eine schnellere Ausführung optimiert werden?

+0

Danke Jimr, Das sind eigentlich die Zeiten auf meinem Entwickler.prod ist näher an 600ms. Ich denke, es sind wirklich die Bilder, die ich zu beschleunigen versuche, was nicht wahrscheinlich ist, da sie nicht unter meiner Kontrolle stehen. – pedalpete

Verwandte Themen