2009-07-31 9 views
4

J'essaie de faire tout ce que je peux pour augmenter la vitesse de chargement de mes pages, et en particulier les composants chargés par ajax.DOMContentLoaded/load (événement), comment augmenter la vitesse.

Dans Firebug, mon eteint ressemble à ceci

Je ne suis pas tout à fait sûr que si je lis correctement, mais il est soit + 2.19s pour DOMContentLoaded (ou il mayonly être si .8 nous sommes supposés le soustraire à la réponse en attente).

Mais alors 4.67s pour le 'load' (événement).

Ces deux éléments semblent être des temps de chargement significativement longs.

Je n'ai pas été capable de comprendre ce qui causerait ces sortes de fois. Ces stats proviennent du chargement d'une page html directe que je charge normalement via ajax. Mais ce n'est que le HTML. Aucun javascript dans la page, et la page est en cours de chargement directement, pas par le biais d'une requête ajax.

Cependant, lorsque je charge cette page via ajax, je reconnais un délai important pendant que la page tente de charger.

Des suggestions?

J'ai regardé à travers le html dans IE debugbar, et tout est étonnamment propre. Il y a 30 images dans la page. Cela pourrait-il être ce que l'événement 'load' attend? Et si oui, y a-t-il un moyen d'accélérer cela?

En particulier, comme l'utilisateur ne chargera jamais cette page directement, mais uniquement via une requête ajax, est un moyen d'améliorer les performances de chargement de la page en ajax. Le problème n'est pas avec le script de chargement ajax, mais avec la page html spécifiquement.

---------------------- ÉDITÉ ----------------------- ------- Les résultats de la page sont chargés dans un cycle jquery où plusieurs images sont visibles en même temps, donc l'utilisation de lazyloader fournit une expérience utilisateur assez horrible. (en supposant que ce soit les images qui causent ce problème).

+0

Est-ce que les images dépendent de l'événement ajax ou sont-elles toujours les mêmes 30 graphiques? – jeroen

Répondre

6

Ces statistiques Firebug vous disent que:

  • Il faut 2,1 secondes à partir du moment que vous avez commencé la demande de votre code côté serveur pour commencer à retourner une réponse
  • Il faut alors 19ms pour télécharger la réponse (le HTML)
  • 71ms ou si après cela, l'événement se déclenche DOMContentLoaded
  • Une fois la page complètement chargée (une fois les images téléchargées tous), l'événement de chargement est déclenché.

DOMContentLoaded se déclenche dès que le DOM est prêt. L'événement de chargement attend jusqu'à ce que toute la page soit chargée (y compris les ressources externes telles que les images)

La plupart du temps dans votre requête (autre que le téléchargement des images) est passé en attente de la construction du code HTML par le serveur. Peut-être que votre code côté serveur peut être optimisé pour fonctionner plus vite?

+0

Merci Jimr, Ce sont en fait les temps sur mon dev.prod est plus proche de 600ms. Je suppose que ce sont vraiment les images que j'essaye d'accélérer, ce qui ne semble pas probable car elles ne sont pas sous mon contrôle. – pedalpete

Questions connexes