window.performance javascript的解释

kar*_*ick 21 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); 
Run Code Online (Sandbox Code Playgroud)

任何不清楚的准备解释

关于window.performance的任何想法

Cal*_*ang 47

performance.timing

不确定这个图表是否能让你更好地理解performance.timing.

对于你的问题:

我有5个服务器调用网页加载,performance.timing对象是基于所有5个服务器调用或基于第5个服务器调用(最后一次调用)生成的.

答案是:performance.timing基于所有请求和响应生成(但不包括ajax).

对于你给出的样本连接速度计算脚本,我想下面的一个更好.

var duration = performance.timing.responseEnd - performance.timing.responseStart;
Run Code Online (Sandbox Code Playgroud)

其原因是:从所述持续时间navigationStart,以responseEnd 包括不从服务器传送任何数据到客户机DNS定时.

有关时间的定义,请参阅https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html.