Performance 接口可以獲取到當(dāng)前頁(yè)面中與性能相關(guān)的信息。
function getTiming() {
setTimeout(() => {
let t = window.performance.timing;
let performanceInfo = [{
key: "Redirect",
desc: "網(wǎng)頁(yè)重定向的耗時(shí)",
"value(ms)": t.redirectEnd - t.redirectStart
},
{
key: "AppCache",
desc: "檢查本地緩存的耗時(shí)",
"value(ms)": t.domainLookupStart - t.fetchStart
},
{
key: "DNS",
desc: "DNS查詢的耗時(shí)",
"value(ms)": t.domainLookupEnd - t.domainLookupStart
},
{
key: "TCP",
desc: "TCP鏈接的耗時(shí)",
"value(ms)": t.connectEnd - t.connectStart
},
{
key: "Waiting(TTFB)",
desc: "從客戶端發(fā)起請(qǐng)求到接收響應(yīng)的時(shí)間",
"value(ms)": t.responseStart - t.requestStart
}, {
key: "Content Download",
desc: "下載服務(wù)端返回?cái)?shù)據(jù)的時(shí)間",
"value(ms)": t.responseEnd - t.responseStart
},
{
key: "HTTP Total Time",
desc: "http請(qǐng)求總耗時(shí)",
"value(ms)": t.responseEnd - t.requestStart
},
{
key: "First Time",
desc: "首包時(shí)間",
"value(ms)": t.responseStart - t.domainLookupStart
},
{
key: "White screen time",
desc: "白屏?xí)r間",
"value(ms)": t.responseEnd - t.fetchStart
},
{
key: "Time to Interactive(TTI)",
desc: "首次可交互時(shí)間",
"value(ms)": t.domInteractive - t.fetchStart
},
{
key: "DOM Parsing",
desc: "DOM 解析耗時(shí)",
"value(ms)": t.domInteractive - t.responseEnd
},
{
key: "DOMContentLoaded",
desc: "DOM 加載完成的時(shí)間",
"value(ms)": t.domInteractive - t.navigationStart
},
{
key: "Loaded",
desc: "頁(yè)面load的總耗時(shí)",
"value(ms)": t.loadEventEnd - t.navigationStart
}]
console.table(performanceInfo);
}, 0)
}
window.addEventListener('load', getTiming, false)
- 瀏覽器兼容性
主流瀏覽器都已經(jīng)支持,詳見(jiàn)瀏覽器兼容性
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。