Как я могу измерить ответ и время загрузки веб-страницы?

Ваш #page div имеет встроенный CSS.

Inline css

РЕДАКТИРОВАТЬ

Код, определяющий height, определен в init.min. js file

if (ThGlobal.is_fixed_header == 1) {
            if (jQuery(".main-slider-container").length > 0) {
                jQuery(".main-slider-container").css({
                    "margin-top": jQuery(".head-container").outerHeight() + 10
                })
            } else {
                jQuery("#page").css({
                    "margin-top": jQuery(".head-container").outerHeight()
                })
            }
        } else {
            jQuery("#page").css({
                "margin-top": 0
            })
        }

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

5
задан Ksempac 24 June 2009 в 17:30
поделиться

9 ответов

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

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);

System.Diagnostics.Stopwatch timer = new Stopwatch();
timer.Start();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

timer.Stop();

TimeSpan timeTaken = timer.Elapsed;

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

[edit] В качестве альтернативы этому вы можете использовать элемент управления WebBrowser и измерять время между выполнением .Navigate () и события DocumentCompleted от срабатывания. Я думаю, что это также будет включать в себя время загрузки и рендеринга дополнительного контента. Однако я не использовал огромное количество элементов управления WebBrowser и не знаю, нужно ли очищать кеш, если вы неоднократно запрашиваете одну и ту же страницу.

20
ответ дан 18 December 2019 в 05:50
поделиться

В зависимости от того, как часто вам нужно это делать, возможно, вы можете попробовать использовать Selenium (инструмент автоматического тестирования для веб-приложений) , поскольку он использует внутренний веб-браузер, вы будете иметь довольно близкие меры. Я думаю, что было бы не слишком сложно использовать Selenium API из приложения .Net (поскольку вы даже можете использовать Selenium в модульных тестах).

4
ответ дан 18 December 2019 в 05:50
поделиться

One thing you need to take account of is the cache. Make sure you are measuring the time to download from the server and not from the cache. You will need to insure that you have turned off client side caching.

Also be mindful of server side caching. Suppose you download the pace at 9:00AM and it takes 15 seconds, then you download it at 9:05 and it takes 3 seconds, and finally at 10:00 it takes 15 seconds again.

What might be happening is that at 9 the server had to fully render the page since there was nothing in the cache. At 9:05 the page was in the cache, so it did not need to render it again. Finally by 10 the cache had been cleared so the page needed to be rendered by the server again.

I highly recommend that you checkout the YSlow addin for FireFox which will give you a detailed analysis of the times taken to download each of the items on the page.

2
ответ дан 18 December 2019 в 05:50
поделиться

Однажды я написал экспериментальную программу , которая загружает HTML-страницу и объекты, на которые она ссылается (изображения, фреймы и т. Д.).

Сложнее, чем кажется, потому что есть HTTP-согласование, поэтому некоторые веб-клиенты получат SVG-версию изображения, а некоторые PNG-версию, сильно различающуюся по размеру. То же самое для <объект> .

1
ответ дан 18 December 2019 в 05:50
поделиться

Что-то вроде этого, вероятно, будет работать нормально:

System.Diagnostics.Stopwatch sw = new Stopwatch()
System.Net.HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.example.com");
// other request details, credentials, proxy settings, etc...

sw.Start();
System.Net.HttpWebResponse res = (HttpWebResponse)req.GetResponse();
sw.Stop();

TimeSpan timeToLoad = sw.Elapsed;
1
ответ дан 18 December 2019 в 05:50
поделиться
0
ответ дан 18 December 2019 в 05:50
поделиться

Вы можете использовать следующее программное обеспечение:

http://www.cyscape.com/products/bhawk/page-load-time.aspx

http: // www .trafficflowseo.com / 2008/10 / website-load-timer-great-to-monitor.html

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

0
ответ дан 18 December 2019 в 05:50
поделиться

Если вы используете firefox, установите расширение firebug, найденное по адресу http: // getfirebug.com . Оттуда выберите вкладку net, и она даст вам знать время загрузки / отклика для всего на странице.

0
ответ дан 18 December 2019 в 05:50
поделиться

Я часто сталкиваюсь с очень похожей проблемой. Однако я придерживаюсь немного другого подхода: во-первых, зачем мне вообще статический контент? Я имею в виду, конечно, это важно для пользователя, если для изображения требуется 2 минуты или 2 секунды, но это не моя проблема ПОСЛЕ того, как я полностью разработал страницу. Это проблемы во время разработки, а после развертывания это не статический контент, а динамический материал, который обычно замедляет работу (как вы сказали в последнем абзаце). Следующий вопрос: почему вы верите, что так много вещей остается неизменным? Если кто-то в вашей сети запускает программу p2p, маршрутизация идет не так, или у вашего интернет-провайдера есть проблемы, ваша статистика сервера обязательно упадет. И что ваш тест говорит о пользователях, живущих по всему миру или просто использующих другого интернет-провайдера? Все, что я говорю, это то, что вы сравниваете СВОЮ точку зрения, но это мало что говорит о производительности серверов, не так ли?

Почему бы не позволить сайту / серверу самому определять, сколько времени потребуется для загрузки? Вот небольшой пример, написанный на PHP:

function microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}

function benchmark($finish)
{
  if($finish == FALSE){  /* benchmark start*/    
    $GLOBALS["time_start"] = microtime_float();
  }else{ /* benchmark end */    
    $time = microtime_float() - $GLOBALS["time_start"]; 
    echo '<div id="performance"><p>'.$time.'</p></div>';
  }
}

Он добавляет в конце страницы время, необходимое для сборки (скрыто с помощью css). Каждые пару минут я использую регулярное выражение и анализирую его. Если на этот раз больше, я знаю, что что-то не так (включая статический контент!), И через RSS-канал я получаю информацию и могу действовать.

С помощью firebug мы знаем «нормальную» производительность сайта, загружающего весь контент (фаза разработки). С помощью теста мы получаем текущую ситуацию с сервером (даже на нашем мобильном телефоне). ХОРОШО. Что дальше? Мы должны убедиться, что все / большинство посетителей получают хорошее соединение. Я считаю эту часть действительно сложной и открыт для предложений. Однако я пытаюсь взять файлы журнала и пропинговать пару IP-адресов, чтобы узнать, сколько времени требуется, чтобы добраться до этой сети. Кроме того, прежде чем я выберу конкретного провайдера, я стараюсь прочитать о возможностях подключения и мнениях пользователей ...

1
ответ дан 18 December 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: