в Spring MVC, как узнать время загрузки страницы?

Я пытаюсь отобразить время ответа сервера на странице, аналогичное времени поиска Google, что-то вроде «страница загружается примерно через 1,3 секунды» или около того.

Каков наилучший способ добиться этого? В настоящее время у меня есть настройка среды MVC, и мой первоначальный подход заключался в том, чтобы сохранить начальное время в контроллере и передать его в качестве модели в представление, и оно зависит от представления для расчета прошедшего времени.

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

Может ли кто-нибудь проверить, была ли моя первоначальная мысль правильной? или существует уже реализованное решение?

Спасибо,

Джейсон


person Jason    schedule 28.05.2012    source источник


Ответы (2)


Если вы ждете весь путь до вашего контроллера, вы потенциально теряете большую часть «времени загрузки». Вы хотите использовать фильтр для определения времени запроса. от самого раннего до самого позднего в процессе, насколько это возможно. Учебник по Java EE содержит дополнительную информацию о написании фильтров. Есть еще один ответ SO, который касается именно этого:

Весной MVC, где начинать и заканчивать счетчик для проверки скорости выполнения?

person Ryan Stewart    schedule 28.05.2012
comment
Очень ценю различные ссылки! - person Jason; 29.05.2012

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

Если вы используете механизм шаблонов, такой как Tiles или SiteMesh, это вычисление прошедшего времени будет вызываться в одном месте: в шаблоне страницы.

person JB Nizet    schedule 28.05.2012
comment
Спасибо за ответ - посмотрю фильтр. - person Jason; 29.05.2012