Подтвердить что ты не робот

Объяснение window.performance javascript

Я работаю над обнаружением скорости соединения, поэтому я планировал использовать объект window.performance для вычисления продолжительности.

Я немного запутался с объектом window.performance.timing, созданным на основе всей загрузки страницы или на основе последнего запроса и ответа.

Пример:

У меня есть 5 запросов сервера для загрузки веб-страницы, performance.timing объект создается на основе всех 5 вызовов сервера или на основе 5-го вызова сервера (последний вызов).

расчет скорости подключения образца для справки

 var bitsLoaded = 100000; //bits total size of all files (5 server call).
 var duration = performance.timing.responseEnd - performance.timing.navigationStart;
 var speedBps = Math.round(bitsLoaded / duration);
 var speedKbps = (speedBps / 1024).toFixed(2);
 var speedMbps = (speedKbps / 1024).toFixed(2); 

Что-нибудь непонятное готово объяснить

Любая идея о window.performance

4b9b3361

Ответ 1

performance.timing

Не уверен, что эта диаграмма дает вам лучшее представление об эффективности.

По вашему вопросу:

У меня есть 5 серверных вызовов для загрузки веб-страницы, performance.timing object генерируется на основе всех 5 серверных вызовов или на основе 5-го сервер (последний вызов).

Ответ: performance.timing создается на основе всех запросов и ответов (но не включая ajax).

Для расчета скорости подключения образца script вы указали, я думаю, что ниже лучше.

var duration = performance.timing.responseEnd - performance.timing.responseStart;

Причина: длительность от navigationStart до responseEnd включает в себя синхронизацию DNS, которая не передает данные с сервера на клиентский.

Пожалуйста, обратитесь к https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html для определения таймингов.

Ответ 2

performance.timing НЕ основывается на последнем запросе и ответе. Он измеряет задержку между этапами navigationStart и loadEventStart в жизненном цикле страницы. Как объяснено здесь, основное его использование - определить скорость загрузки страницы.

По моему мнению. performance.timing действительно не может использоваться для измерения скорости соединения с момента его запуска После пользователь получил ответ и является объектом javascript, который выполняется в браузере. Я предлагаю вам просто пинговать пользователя и использовать время в оба конца.