DOMContentLoaded / load (событие), как увеличить скорость. - PullRequest
5 голосов
/ 31 июля 2009

Я пытаюсь сделать все возможное, чтобы увеличить скорость загрузки моих страниц, и в частности компонентов, загруженных ajax.

В firebug мой выход выглядит следующим образом

Я не совсем уверен, правильно ли я это читаю, но для DOMContentLoaded это либо + 2,19 с (или может быть только 0,8, если мы должны вычесть это из ожидающего ответа).

Но затем 4,67 с для «загрузки» (события).

Оба из них, похоже, значительно длиннее время загрузки.

Я не смог выяснить, что могло бы вызвать такие времена. Эта статистика основана на загрузке прямой HTML-страницы, которую я обычно загружаю через ajax. Но это всего лишь HTML. На странице нет javascript, и страница загружается напрямую, а не через ajax-запрос.

Однако, когда я загружаю эту страницу через ajax, я распознаю значительную задержку при попытке загрузки страницы.

Есть предложения?

Я просматривал html в отладочной панели IE, и все это выглядит на удивление чисто. На странице 30 изображений. Может ли это быть тем, что ожидает событие load? И если так, есть ли способ ускорить это?

В частности, поскольку пользователь никогда не будет загружать эту страницу напрямую, а только через запрос ajax, это способ улучшить производительность загрузки страницы в ajax. Проблема не в скрипте загрузки ajax, а именно в html-странице.

---------------------- Editted ------------------------ ------ Результаты страницы загружаются в цикл jquery, где несколько изображений видны одновременно, поэтому использование lazyloader обеспечивает довольно ужасное взаимодействие с пользователем. (при условии, что именно изображения вызывают эту проблему).

1 Ответ

7 голосов
/ 01 августа 2009

Эта статистика говорит вам, что:

  • С момента запуска запроса на серверный код требуется 2,1 секунды, чтобы начать возвращать ответ
  • Затем для загрузки ответа требуется 19 мс (т. Е. HTML)
  • 71 мс или около того, после этого событие DOMContentLoaded запускает
  • После полной загрузки страницы (после загрузки всех изображений) запускается событие загрузки.

DOMContentLoaded запускается, как только DOM готов. Событие load ожидает загрузки всей страницы (включая любые внешние ресурсы, например изображения)

Большую часть времени в вашем запросе (кроме загрузки изображений) тратится на ожидание, пока сервер создаст HTML. Может быть, ваш серверный код можно оптимизировать, чтобы он работал быстрее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...