Web Performance 接口允许网页中的 JavaScript 代码可以通过具体的函数(由 window 对象的 performance 属性提供)测量当前网页页面或者 web应用的性能。它能提供高精度的时间戳,可以更加精准的计算脚本运行的时间
效果预览⬇️,参考简书的网页源代码实现,控制台切换成 H5 即可
API
performance对象的timing属性指向一个对象,它包含了各种与浏览器性能有关的时间数据,提供浏览器处理网页各个阶段的耗时。我们在chrome中输入performance.timing就可以看到下面的数据
参数详解,⚠️performance.timing的所有属性都是只读属性
1 | navigationStart:是一个无符号long long 型的毫秒数,表征了从同一个浏览器上下文的上一个文档卸载(unload)结束时的UNIX时间戳。如果没有上一个文档,这个值会和PerformanceTiming.fetchStart相同。 |
先看下一个请求发出的整个过程中,各种环节的时间顺序
根据上面这些属性,可以计算出网页加载各个阶段的耗时,对我们比较有用的页面性能数据大概包括如下几个
1 | DNS查询耗时 :domainLookupEnd - domainLookupStart |
代码实现如下,基于ES6的简单实现
1 | // window.onload = () => setTimeout(getPerformance, 1000) |