Время создания страницы в ASP.NET MVC и WebForms - PullRequest
0 голосов
/ 29 июня 2009

Я хочу отобразить внизу своих страниц простой текст «встроенных в x.yz секунд», чтобы легко проверить различные варианты. (некоторые страницы создаются с использованием параметров, введенных на предыдущей странице «обычным» пользователем, который тоже хотел бы увидеть результаты своих решений)

Я знаю, что могу использовать трассировки в asp.net, но это не очень удобно для пользователя, и я боюсь, что это не очень хорошо для производительности.

Считаете ли вы, что http://www.aspnetzone.de/blogs/peterbucher/archive/2008/03/16/requestdauer-mit-einem-httpmodule-und-response-filter-ausgeben.aspx (httpmodule, веб-страница на немецком языке) является хорошим решением?

О, и так как я сейчас работаю над несколькими проектами, я хотел бы сделать это для страниц mvc asp.net и веб-форм:)

Спасибо!

Ответы [ 2 ]

1 голос
/ 28 января 2010

Объект HttpContext содержит временную метку для "start-of-http-request".

Полагаю, этого обычно достаточно, если только для вас не важно вычитать время, потраченное на ожидание доступности доступной темы.

Так что время сборки будет

    DateTime.Now.Subtract(HttpContext.Current.Timestamp).TotalMilliseconds

Если вам нужно самое точное время, вы можете вручную сохранить время запуска в global.asax

    void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    { 
        HttpContext.Current.Session.Add("LastPageStart", DateTime.Now);
    }

и вычтите его из времени окончания в

   Application_EndRequest

Записать его в log4net или что-то подобное.

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

0 голосов
/ 29 июня 2009

Определенно не используйте трассировки в производственном коде!

Может читать по-немецки, но я бы, вероятно, реализовал это, просто сохранив текущий DateTime в конструкторе страницы, а затем напечатав разницу во времени между текущим и этим сохраненным временем в событии OnPreRender для метки, которая будет показывая время - событие OnPreRender является последней точкой в ​​жизненном цикле страниц, где возможно изменить визуализированное содержимое страницы (без какой-либо постобработки)

Это должно работать нормально, если вы не выполняете тяжелую обработку после события OnPreRender вашей метки.

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