從網絡面板中能夠獲取不少有用信息,如詳細的時間數據,http請求頭響應頭,cookies,WebSocket數據。php
經過分析這些數據,能夠知道哪一個資源加載耗時最久,誰發起的網絡請求,這些對性能優化頗有幫助。css
這些數據的獲取都是經過一個api來完成的,Resource Timing API。html
咱們不須要知道它的實現原理,只要知道它能提供什麼數據便可。jquery
這些數據也可經過chrome瀏覽器的window.performace對象獲取,以下chrome
network監控網頁中全部的http請求,一行表明一個http請求,每一個字段表明請求的不一樣屬性和狀態。api
點擊按鈕精簡顯示信息,點擊按鈕
顯示所有信息。瀏覽器
顯示所有信息時包括主要的域和次要的域(以下圖紅色框中的Time和Latency),精簡時就只顯示主要的域(以下圖中紅色框中Time)。緩存
一條資源的請求就是一行,包括不少列參數,默認以下。性能優化
好比下圖中請求menu.css的資源的Initiator顯示爲(index):650[paraser],表示該css文件是從首頁html的第650行中解析出來的,查看源代碼能夠看到這行是一個<link>標籤去請求menu.css資源。服務器
有的資源的Initiator一列爲Script,表示該資源是經過某js文件加載的。
好比下圖這個js請求,size爲64.7kb,content爲201kb,說明請求該資源時服務器採用壓縮傳輸,大小爲64.7kb,能夠點擊查看資源詳情,在Headers裏能夠看到Content-Encoding:gzip採用gzip壓縮傳輸。瀏覽器解壓後真正的內容大小爲201kb,這樣能夠減小服務器帶寬壓力。
默認只顯示部分列的信息,在標頭右鍵出來一個列表,打對勾的就是展現的,去掉對勾就好在網絡面板的表格中刪掉這一列。
請求默認按請求開始時間排序,爲對Size和Time的排序是很是經常使用的,一眼能夠看出哪一個請求比較耗資源。
隊Timeline的排序能夠有多個選項:
跳轉時想保留以前的日子,用preserve log選項。若是不勾選,每次刷新log就沒了,勾選上Preserve log,每次刷新都會保留log,好比刷新3次就會有三次請求的log。頁面跳轉到其餘地址log也會保留。
單擊任意一條http請求,可查看詳情。
只顯示指定類型請求,如img,css,js等。
漏斗形的按鈕,意思是是否啓用過濾信息選項。啓用後可在下面一列中篩選(Hide data URLS,XHR,JS,CSS等)。
更高級點,能夠進行請求查詢,即在前面的輸入框中輸入相應的字符對http信息進行匹配。好比輸入Status-code:200篩選出狀態碼爲200的請求。
查詢的時候,輸入的信息包括type(StatusCode)和value(200)。瀏覽器會給出自動補全提示,按上下箭頭或tab選擇。
還能夠經過在查詢條件前面加上「-」來進行反選。以下圖,在status-code前面加了負號,就能夠篩選出全部狀態碼不是200的請求。
一些可用的過濾類型以下:
larger-than:50
, larger-than:150k
, larger-than:2m
勾選Disable cache選項,可禁用緩存,全部的狀態碼爲304的請求和size爲from cache的請求變成正常請求。
以請求imagemap.php爲例。
消耗時間總共711.41ms,包括2部分Connection Setup和Request/Response:
(官方的一個更全的圖以下)
Finish:1.39s :表示整個頁面加載時間爲640ms。
DOMContentLoaded:998ms :發生在頁面DOMContentLoaded事件的啓動時間點,對應上圖藍色豎線。
Load:1.39s:表示頁面load事件的啓動時間點,對應上圖紅色豎線。
DOMContentLoaded事件要在window.onload以前執行,DOM樹構建完成時執行DOMContentLoaded事件,而window.onload是在頁面載入完成時才執行,包括圖片等加載完成。
代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo of starof</title> <script src="http://code.jquery.com/jquery-1.4.1.min.js" integrity="sha256-LOx49zn73f7YUs15NNJTDnzEyPFLOGc7A7pfuICtTMc=" crossorigin="anonymous"></script> </head> <body> <h1> DOM READY's TEST </h1> <p id="status"> DOM is not ready </p> <script> alert("111"); if (document.addEventListener) { function DOMContentLoaded() { $("#status").text("DOM is ready now!"); alert("222"); } document.addEventListener("DOMContentLoaded", DOMContentLoaded, false); } window.onload = function() { $("#status").text("DOM is ready AND wondow.onload is excute!"); } </script> </body> </html>
效果:
jquery的$(document) .ready();就是用的DOMContentLoaded事件。
其餘資源連接: