如何从浏览器获取排除调度时间的准确PerformanceResourceTiming条目
当然可以用PerformanceResourceTiming API拿到排除调度时间的纯资源飞行时长
不用纠结duration字段包含调度时间的问题,直接用API提供的高精度时间戳自己计算就行:
- 调度/排队时间其实就是
requestStart减去fetchStart的差值,这部分就是浏览器等着发送请求的耗时 - 要得到排除调度时间的纯资源传输时长,直接用
responseEnd - requestStart就行——这个值从浏览器开始发送请求算起,到收到资源最后一个字节结束,完全排除了前面的调度等待时间
比如你说的例子里,总时长244.13ms(对应duration),其中调度时间4ms(requestStart - fetchStart=4),那纯飞行时长就是244.13 - 4 = 240.13ms,和你提到的240ms刚好对应。
如果只需要请求发送到收到第一个字节的时间(也就是常说的TTFB,网络往返的核心飞行时间),可以用responseStart - requestStart来计算。
这些时间戳都是DOMHighResTimeStamp类型,精度很高,计算出来的结果会是带小数的精确毫秒值。
内容的提问来源于stack exchange,提问作者Tushar Shahi
相关产品推荐
相关产品推荐

