with(performance){ readyStart = timing.fetchStart - timing.navigationStart; redirectTime = timing.redirectEnd - timing.redirectStart; appcacheTime = timing.domainLookupStart - timing.fetchStart; unloadEventTime = timing.unloadEventEnd - timing.unloadEventStart; lookupDomainTime = timing.domainLookupEnd - timing.domainLookupStart; connectTime = timing.connectEnd - timing.connectStart; requestTime = timing.responseEnd - timing.requestStart; initDomTreeTime = timing.domInteractive - timing.responseEnd;domReadyTime = timing.domComplete - timing.domInteractive; loadTime = timing.loadEventEnd - timing.navigationStart; //過早獲取時 domComplete有時會是0loadEventTime = timing.loadEventEnd - timing.loadEventStart;loadTime = timing.loadEventEnd - timing.navigationStart; //過早獲取時 loadEventEnd有時會是0 console.log('准備新頁面時間耗時: ' + readyStart);console.log('redirect 重定向耗時: ' + redirectTime);console.log('Appcache 耗時: ' + appcacheTime);console.log('unload 前文檔耗時: ' + unloadEventTime);console.log('DNS 查詢耗時: ' + lookupDomainTime);console.log('TCP連接耗時: ' + connectTime);console.log('request請求耗時: ' + requestTime);console.log('請求完畢至DOM加載: ' + initDomTreeTime);console.log('解釋dom樹耗時: ' + domReadyTime);console.log('從開始至load總耗時: ' + loadTime); }
mark-zhq[5]
· navigationStart:當前瀏覽器窗口的前一個網頁關閉,發生unload事件時的Unix毫秒時間戳。如果沒有前一個網頁,則等於fetchStart屬性。
· unloadEventStart:如果前一個網頁與當前網頁屬於同一個域名,則返回前一個網頁的unload事件發生時的Unix毫秒時間戳。如果沒有前一個網頁,或者之前的網頁跳轉不是在同一個域名內,則返回值為0。
· unloadEventEnd:如果前一個網頁與當前網頁屬於同一個域名,則返回前一個網頁unload事件的回調函數結束時的Unix毫秒時間戳。如果沒有前一個網頁,或者之前的網頁跳轉不是在同一個域名內,則返回值為0。
· redirectStart:返回第一個HTTP跳轉開始時的Unix毫秒時間戳。如果沒有跳轉,或者不是同一個域名內部的跳轉,則返回值為0。
· redirectEnd:返回最后一個HTTP跳轉結束時(即跳轉回應的最后一個字節接受完成時)的Unix毫秒時間戳。如果沒有跳轉,或者不是同一個域名內部的跳轉,則返回值為0。
· fetchStart:返回瀏覽器准備使用HTTP請求讀取文檔時的Unix毫秒時間戳。該事件在網頁查詢本地緩存之前發生。
· domainLookupStart:返回域名查詢開始時的Unix毫秒時間戳。如果使用持久連接,或者信息是從本地緩存獲取的,則返回值等同於fetchStart屬性的值。
· domainLookupEnd:返回域名查詢結束時的Unix毫秒時間戳。如果使用持久連接,或者信息是從本地緩存獲取的,則返回值等同於fetchStart屬性的值。
· connectStart:返回HTTP請求開始向服務器發送時的Unix毫秒時間戳。如果使用持久連接(persistent connection),則返回值等同於fetchStart屬性的值。
· connectEnd:返回瀏覽器與服務器之間的連接建立時的Unix毫秒時間戳。如果建立的是持久連接,則返回值等同於fetchStart屬性的值。連接建立指的是所有握手和認證過程全部結束。
· secureConnectionStart:返回瀏覽器與服務器開始安全鏈接的握手時的Unix毫秒時間戳。如果當前網頁不要求安全連接,則返回0。
· requestStart:返回瀏覽器向服務器發出HTTP請求時(或開始讀取本地緩存時)的Unix毫秒時間戳。
· responseStart:返回瀏覽器從服務器收到(或從本地緩存讀取)第一個字節時的Unix毫秒時間戳。
· responseEnd:返回瀏覽器從服務器收到(或從本地緩存讀取)最后一個字節時(如果在此之前HTTP連接已經關閉,則返回關閉時)的Unix毫秒時間戳。
· domLoading:返回當前網頁DOM結構開始解析時(即Document.readyState屬性變為“loading”、相應的readystatechange事件觸發時)的Unix毫秒時間戳。
· domInteractive:返回當前網頁DOM結構結束解析、開始加載內嵌資源時(即Document.readyState屬性變為“interactive”、相應的readystatechange事件觸發時)的Unix毫秒時間戳。
· domContentLoadedEventStart:返回當前網頁DOMContentLoaded事件發生時(即DOM結構解析完畢、所有腳本開始運行時)的Unix毫秒時間戳。
· domContentLoadedEventEnd:返回當前網頁所有需要執行的腳本執行完成時的Unix毫秒時間戳。
· domComplete:返回當前網頁DOM結構生成時(即Document.readyState屬性變為“complete”,以及相應的readystatechange事件發生時)的Unix毫秒時間戳。
· loadEventStart:返回當前網頁load事件的回調函數開始時的Unix毫秒時間戳。如果該事件還沒有發生,返回0。
· loadEventEnd:返回當前網頁load事件的回調函數運行結束時的Unix毫秒時間戳。如果該事件還沒有發生,返回0。