Возможно ли рассчитать время загрузки страницы (включая время запросов, сделанных изнутри страницы) на стороне сервера в ASP.NET ?

#asp.net #performance #metrics

#asp.net #Производительность #показатели

Вопрос:

В моем ASP.NET веб-сайт, я хочу получить полное время, необходимое для обслуживания страницы, включая запросы, сделанные изнутри страницы. Я хочу сделать это на стороне сервера. Это легко сделать для отдельных запросов в Global.asax, но решить, является ли текущий запрос частью конкретной страницы, которая загружается на клиенте, не так тривиально. Есть идеи, как это можно сделать?

Ответ №1:

Сначала вычислите отдельные запросы в Global.asax, а затем, я думаю, если есть какой-либо другой запрос (Ajax) на стороне клиента, затем вычислите его на клиенте, а после этого суммируйте оба, если ваш вызов Ajax также является запросом на ваш сервер, тогда вы можете рассчитать время завершения этого конкретного вызова на стороне сервера, ноесли ваш вызов ajax запрашивает какой-либо другой сервер, я думаю, вам нужно рассчитать его на стороне клиента.

Чтобы использовать класс Application, добавьте новую страницу Global.asax в свой ASP.NET веб-приложение и добавьте к нему приведенный ниже код.

 public void Application_BeginRequest(object src, EventArgs e)
{
    Context.Items["loadstarttime"] = DateTime.Now;
}

public void Application_EndRequest(object src, EventArgs e)
{
    DateTime end = (DateTime)Context.Items["loadstarttime"];
    TimeSpan loadtime = DateTime.Now - end;
    Response.Write("amp;<h3amp;>This page took "   loadtime   "ms to loadamp;</h3amp;>");
}
  

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