前端性能監(jiān)控對象window.performance有四個屬性
window.performance={
memory:{
totalJSHeapSize:'可使用內(nèi)存大小',
usedJSHeapSize:'已使用內(nèi)存大小',
jsHeapSizeLimit:'內(nèi)存大小限制',
},
/*
type的值:
0 即TYPE_NAVIGATENEXT 正常進入頁面(非刷新、非重定向等)
1 即TYPE_RELOAD 通過window.location.reload()刷新的頁面
2 即TYPE_BACK_FORWARD 通過瀏覽器的前進后退按鈕進入的頁面(歷史記錄)
255 即TYPE_UNDEFINED 非以上方式進入的頁面
*/
navigation:{
redirectCount:0,//如果有重定向的話,頁面通過幾次重定向跳轉(zhuǎn)而來
type:0
},
timing:{
//在同一個瀏覽器上下文中,前一個網(wǎng)頁(與當(dāng)前頁面不一定同域)unload的時間戳,如果無前一個網(wǎng)頁unload,則與fetchStart值相等;
navigationStart:'時間戳',
// 前一個網(wǎng)頁(與當(dāng)前頁面同域)unload的時間戳,如果無前一個網(wǎng)頁unload或者前一個網(wǎng)頁與當(dāng)前頁面不同域,則值為0
unloadEventStart: 0,
// 和unloadEventStart 相對應(yīng),返回前一個網(wǎng)頁unload事件綁定的回調(diào)函數(shù)執(zhí)行王弼的時間戳
unloadEventEnd: 0,
// 第一個HTTP重定向發(fā)生時的時間,有跳轉(zhuǎn)且是同域名內(nèi)部的重定向才算,否則值為0
redirectStart: 0,
// 最后一個HTTP重定向完成時的時間,有跳轉(zhuǎn)切爾是同域名內(nèi)部的重定向才算,否則值為0
redirectEnd: 0,
// 瀏覽器準(zhǔn)備好使用HTTP請求抓取文檔的時間,這發(fā)生在檢查本地緩存之前
fetchStart:'時間戳',
// DNS域名查詢開始的時間,如果使用了本地緩存(即無DNS查詢)或持久連接,則與fetchStart值相等
domainLookupStart:'時間戳',
// DNS域名查詢完成的時間,如果使用了本地緩存(即 無DNS查詢)或持久連接,則與fetchStart值相等
domainLookupEnd: '時間戳',
// HTTP(TCP)開始建立連接的時間,如果是持久連接,則與fetchStart值相等;如果在傳輸層發(fā)生了錯誤且重新建立了連接,則這里顯示的是新建立連接的時間
connectStart: '時間戳',
// HTTP(TCP)完成建立連接的時間(握手),如果是持久連接,則與fetchStart相等;如果是在傳輸層發(fā)生了錯誤且重新建立連接,則這里咸寧市的是新建立的連接完成的時間;這里的握手結(jié)束,包括了安全連接建立完成,SOCKS授權(quán)通過;
connectEnd: '時間戳',
// HTTPS連接開始的時間,如果不是安全連接,則值為0;
secureConnectionStart: 0,
// HTTP請求讀取真實文檔開始的時間(完成建立連接),包括從本地讀取緩存,連接錯誤時這里顯示的是新建立的連接的時間
requestStart:'時間戳',
// HTTP開始接收響應(yīng)的時間(獲取到第一個字節(jié)),包括從本地讀取緩存
responseStart:'時間戳',
// HTTP響應(yīng)全部接收完畢的時間(獲取到最后一個字節(jié)),包括從本地讀取的緩存
responseEnd:0,
// 開始解析渲染DOM樹的時間,此時Document.readyState變?yōu)閕nteractive,并將拋出readystatechange相關(guān)事件(這里只是DOM樹解析完畢,這時候并沒有開始加載網(wǎng)頁內(nèi)的資源)
domLoading:0,
// 完成解析DOM樹的時間,Document,readyState變?yōu)閕nteractive,并將拋出readystatechange相關(guān)事件(這時候并沒有開始加載網(wǎng)頁資源)
dominteractive:0,
// DOM解析完成后,網(wǎng)頁內(nèi)資源加載開始的時間,在DOMContentLoaded事件拋出之前發(fā)生
domContentLoadedEventStart:0,
// DOM解析完成后,網(wǎng)頁內(nèi)資源加載完成的時間
domContentLoadedEventEnd:0,
// DOM樹解析完成,且資源也準(zhǔn)備就緒的時間,Document.readyState變?yōu)閏omplete,并將拋出readystatechange相關(guān)事件
domComplete:0,
// load事件發(fā)送給文檔,也即load回調(diào)函數(shù)開始執(zhí)行的時間,如果沒有綁定load事件,值為0
loadEventStart:0,
// load事件的回調(diào)函數(shù)執(zhí)行完畢的時間
loadEventEnd:0
}
}