Что такое надежный способ расчета фактического времени загрузки веб-страницы

Мне интересно узнать фактическое среднее время загрузки страницы для моего веб-приложения.

Упрощенно, как журнал мой средний посетитель ждет, прежде чем они смогут начать использовать страницу на моем сайте. Когда они нажимают ссылку на мой сайт до тех пор, пока сайт не закончит рендеринг и не будет готов принять вход.

Стандартное решение похоже на использование Javascript для сравнения времени с script в течение до script в событии window.onload().

(Смотрите: http://www.dreamincode.net/code/snippet1908.htm)

Это не похоже на очень актуарную меру для меня, поскольку она игнорирует время, затраченное на решение моего домена, и получает достаточное количество HTML-контента, чтобы начать парсиг Javascript.

Также похоже, что Safari запускает window.onload до того, как страница фактически закончила загрузку (http://www.howtocreate.co.uk/safaribenchmarks.html).

Любые идеи?

Можно ли получить время, когда текущий запрос был инициирован через Javascript?
Какое событие срабатывает после того, как все будет надежно установлено во всех браузерах?

Ответ 1

http://www.webpagetest.org/ - отличный ресурс для измерения времени загрузки

Также инструменты google chorme dev имеют панель временной шкалы, где вы можете записывать события, Вот 2.5 минутное видео, показывающее, как работает хронология в google chrome http://www.youtube.com/watch?v=RhaWYQ44WEc

Ответ 2

FireBug имеет "режим сетевой синхронизации", где вы можете увидеть, сколько времени потребовалось для загрузки каждого ресурса, который составляет вашу веб-страницу.

Кроме того, вы должны измерить время, необходимое вашему серверу для подготовки запроса. Поскольку вы не можете влиять на браузер и сеть, время рендеринга на вашем сервере должно быть как можно меньше.

Ответ 3

Firebug - отличный ресурс для этого и множество другой информации о загрузке вашей страницы. Кроме того, Firebug с YSlow идет еще на один шаг. У YSlow есть своя проверка, что она работает против вашей страницы и оценивает ее производительность на основе определенных правил (вы используете CDN, сжатый CSS и JS и т.д.). Я счел неоценимым сделать некоторые важные улучшения (сжатие JS - отличное) на моих сайтах.

Ответ 4

Попробуйте Yahoo YSLOW, он ответит на ваш вопрос, но работает только с FireFox (на самом деле это плагин для firebug)

Ответ 5

Самый точный способ расчета времени загрузки - на стороне сервера: как только страница будет построена, сколько требуется для отображения в браузере пользователя, будет зависеть от:

  • Текущий сетевой трафик;
  • Пользовательские спецификации компьютера;
  • Какой браузер он использует.

Итак, использование JavaScript не является большой мерой, потому что есть много факторов, которые вы не можете изменить там.

Лучшее, что вы можете сделать, это измерить время, которое каждая страница займет на вашем сервере, - что вы можете улучшить.

Излишне говорить, что это будет зависеть от того, на каком языке вы кодируете.

Ответ 6

Одна вещь, которую можно сделать, это использовать Javascript для захвата текущего времени, когда происходит событие на стороне клиента, которое запускает обратную связь на ваш сервер. Передача этого значения обратно на серверную сторону позволит вам вернуть его клиенту в качестве начального "триггерного" времени, которое вы можете сравнить с ним.

Вместо использования onLoad я считаю, что вы можете поместить script в строку в конце документа, чтобы он запускался, как только браузер отображает эту часть script. Это позволит вам сравнить текущее время, когда встроенный script работает против времени запуска, которое было зафиксировано, когда пользователь инициировал вызов.

Однако, как упоминалось Seb, поскольку вы можете только надежно контролировать серверную сторону времени загрузки, было бы лучше включить в свои показатели время генерации страницы сервера. Если у вас есть оба показателя, вы можете, по крайней мере, посмотреть, сколько времени занимает время генерации страницы, и сколько зависит от различных задержек, которые могут возникнуть на стороне клиента.

Ответ 7

Я всегда нашел тест полной страницы Pingdom Tools очень полезным. Это не решение в коде, но оно дает вам представление о том, как быстро (или нет) загружается ваша страница.

Ответ 8

псевдо-код.


server marks start of processing the request.
server sends the output.
    script tag, marks start time.
    rest of html markup.
    client script , with server processing time in ms
    client script with window.load event + server-side time
    client script which sends the total back via an ajax call.

Ответ 9

Метод, который я использую, заключается в создании переменной сеанса (завернутой в if, чтобы проверить, что она еще не была установлена), как первое, что содержится в моем файле index.php(который проходит каждый script). Затем у меня есть событие pageLoad в javaScript, которое отправляется обратно на другой script на сервере, который получает время сеанса сеанса и вычитает его из текущего времени. Это дает вам время, необходимое для запроса на ваш сервер, обработки, ответа и рендеринга.

просто убедитесь, что вы отключили переменную сеанса в script, которую вы отправляете обратно, чтобы в следующий раз, когда загружалась страница, она устанавливает новую переменную сеанса (поскольку она не существует, потому что мы ее отключаем) и начинается все еще раз. Единственное, что вы можете захотеть - найти время, которое ajax взял, чтобы запросить сервер и вычесть его, но он должен быть миллисекундами.

Ответ 10

• Определите, сколько бит вы передаете. (этот конвертер помогает: http://www.matisse.net/bitcalc/)

• Оценить или определить скорость загрузки (вы можете использовать эту вещь: http://speedtest.net)

• разделите