1

Мне были даны следующие формулы для измерения времени до первого байта (TTFB), TTFB до готовности DOM и загрузки страницы.Вычисление и проверка времени до первого байта (TTFB)

TTFB

window.performance.timing.responseStart - window.performance.timing.navigationStart 

TTFB к DOM Ready

window.performance.timing.domComplete - window.performance.timing.navigationStart 

загрузки страницы

window.performance.timing.loadEventStart - window.performance.timing.navigationStart 

Являются ли эти е ормула правильно? И как бы я мог проверить их? Я слышал, что вы можете их измерить в панели Firebug Network, но, похоже, она обременительна при извлечении значений. Не знаете, где вы получаете значения в Chrome.

Итак, как определить эти измерения?

+0

Где вы получите эти формулы из? –

ответ

3

Firebug на самом деле позволяет очень легко увидеть эти тайминги. Вам просто нужно выполнить window.performance.timing в командной строке, и он будет отображать график и список всех тайминги ниже, как это:

<code>window.performance.timing</code> display in Firebug

Кроме того, в соответствии с description on MDN, я бы сказал, что ваш расчет должен начаться в fetchStart , так как это тот момент, когда браузер готов извлечь документ с помощью HTTP-запроса. В зависимости от вашего определения DOM Ready время окончания этого измерения также может быть domInteractive или domContentLoadedEventStart.

Так что, я бы сказал, что правильные измерения будут:

TTFB

window.performance.timing.responseStart - window.performance.timing.fetchStart 

TTFB к DOM Ready

window.performance.timing.domInteractive - window.performance.timing.fetchStart 

загрузки страницы

window.performance.timing.loadEventStart - window.performance.timing.fetchStart 
+1

Эта временная диаграмма Firebug не выглядит точным - я сомневаюсь, что браузер подождал, пока весь html не был получен, чтобы начать DOM, анализируя его. – NoBugs

+0

Вы правы, график неверен относительно * DOM Processing *. В настоящее время (Firebug 2.0.14) указано время от 'responseEnd' до' loadEventStart', в то время как на самом деле это должно быть время между 'domLoading' и' domInteractive' или 'domComplete'.Я зарегистрировал [выпуск 7993] (https://github.com/firebug/firebug/issues/7993) для этого. Тем не менее вы можете прочитать правильные тайминги из таблицы. –

0

Это может быть подтверждено с помощью вкладки сети Chrome:

Пример TTFB:

window.performance.timing.responseStart - window.performance.timing.requestStart

enter image description here