• 次要用到了 Performance API,能够统计页面DOM渲染实现须要的工夫。
Performance 接口能够获取到以后页面中与性能相干的信息。
function getTiming() {  setTimeout(() => {    let t = window.performance.timing;    let performanceInfo = [{      key: "Redirect",      desc: "网页重定向的耗时",      "value(ms)": t.redirectEnd - t.redirectStart    },    {      key: "AppCache",      desc: "查看本地缓存的耗时",      "value(ms)": t.domainLookupStart - t.fetchStart    },    {      key: "DNS",      desc: "DNS查问的耗时",      "value(ms)": t.domainLookupEnd - t.domainLookupStart    },    {      key: "TCP",      desc: "TCP链接的耗时",      "value(ms)": t.connectEnd - t.connectStart    },    {      key: "Waiting(TTFB)",      desc: "从客户端发动申请到接管响应的工夫",      "value(ms)": t.responseStart - t.requestStart    }, {      key: "Content Download",      desc: "下载服务端返回数据的工夫",      "value(ms)": t.responseEnd - t.responseStart    },    {      key: "HTTP Total Time",      desc: "http申请总耗时",      "value(ms)": t.responseEnd - t.requestStart    },    {      key: "First Time",      desc: "首包工夫",      "value(ms)": t.responseStart - t.domainLookupStart    },    {      key: "White screen time",      desc: "白屏工夫",      "value(ms)": t.responseEnd - t.fetchStart    },    {      key: "Time to Interactive(TTI)",      desc: "首次可交互工夫",      "value(ms)": t.domInteractive - t.fetchStart    },    {      key: "DOM Parsing",      desc: "DOM 解析耗时",      "value(ms)": t.domInteractive - t.responseEnd    },    {      key: "DOMContentLoaded",      desc: "DOM 加载实现的工夫",      "value(ms)": t.domInteractive - t.navigationStart    },    {      key: "Loaded",      desc: "页面load的总耗时",      "value(ms)": t.loadEventEnd - t.navigationStart    }]    console.table(performanceInfo);  }, 0)}window.addEventListener('load', getTiming, false)