Как я могу отслеживать время рендеринга в браузере?

Я работаю над внутренней корпоративной системой, которая имеет веб-интерфейс с использованием Tomcat.

  1. как я могу контролировать время рендеринга определенных страниц в браузере (IE6)?
  2. Я хотел бы иметь возможность записывать результаты в файл журнала (отдельный файл журнала или журнал доступа Tomcat).

EDIT: в идеале мне нужно контролировать рендеринг на клиентах, обращающихся к страницам.

6 ответов


в случае, если браузер имеет JavaScript включен одна из вещей, которые вы могли бы сделать, это написать встроенный скрипт и отправить его первым делом в HTML. Сценарий будет делать две вещи:

  1. запись текущего системного времени в переменной JS (если Вам ПОВЕЗЕТ, время может примерно соответствовать времени начала рендеринга страницы).
  2. прикрепите функцию JS к событию onload страницы. Эта функция будет запрашивать текущее системное время еще раз, вычесть время начала из шага 1 и отправьте его на сервер вместе с местоположением страницы (или некоторым уникальным идентификатором, который вы можете вставить в встроенный скрипт динамически на вашем сервере).
<script language="JavaScript">
var renderStart = new Date().getTime();
window.onload=function() { 
   var elapsed = new Date().getTime()-renderStart;
   // send the info to the server 
   alert('Rendered in ' + elapsed + 'ms'); 
} 

</script>

... usual HTML starts here ...

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


на API синхронизации навигации доступно в современных браузерах (IE9+) кроме Safari:

function onLoad() { 
  var now = new Date().getTime();
  var page_load_time = now - performance.timing.navigationStart;
  console.log("User-perceived page loading time: " + page_load_time);
}

Что касается неинвазивных методов,Молот измеряет полное время загрузки (включая выполнение JavaScript), хотя и только в Firefox.

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


посмотреть селен - они предлагают дистанционное управление которое может автоматически начать различные браузеры (например IE6), страницы нагрузки, испытание для специфического содержания на странице. В конце генерируются отчеты, которые также показывают время отрисовки.


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

Что касается IE, вы можете рассмотреть возможность написания плагина. На рынке, похоже, мало таких инструментов. Может, продашь?


в Firefox вы можете использовать Firebug для отслеживания времени загрузки. С помощью плагина YSlow вы даже можете получить рекомендации, как улучшить производительность.