本文介紹的 Chrome 開發者工具基於 Chrome 65版本,若是你的 Chrome 開發者工具沒有下文提到的那些內容,請檢查下 Chrome 的版本javascript
本文是 前端開發必備之Chrome開發者工具(上篇) 的下篇,廢話很少說,直接開始介紹。css
網絡面板記錄頁面上每一個網絡操做的相關信息,包括詳細的耗時數據、HTTP 請求與響應標頭和 Cookie等等。html
Network 面板能夠在頁面加載期間捕捉屏幕截圖。此功能稱爲幻燈片。前端
點擊 攝影機 圖標能夠啓用幻燈片。圖標爲灰色時,幻燈片處於停用狀態 ()。若是圖標爲藍色,則說明已啓用 ()。java
從新加載頁面能夠捕捉屏幕截圖。屏幕截圖顯示在概覽上方。web
將鼠標懸停在一個屏幕截圖上時,Timeline將顯示一條黃色豎線,指示幀的捕捉時間。chrome
雙擊屏幕截圖可查看放大版本。在屏幕截圖處於放大狀態時,使用鍵盤的向左和向右箭頭能夠在屏幕截圖之間導航。數據庫
Network 面板突出顯示兩種事件:DOMContentLoaded
和 load
。後端
解析頁面的初始標記時會觸發 DOMContentLoaded
。 此事件將在 Network 面板上的兩個地方顯示:瀏覽器
頁面徹底加載時將觸發 load
。此事件顯示在三個地方:
默認狀況下,每當您從新加載當前頁面或者加載不一樣的頁面時,網絡活動記錄會被丟棄。啓用 Preserve log 複選框能夠在這些狀況下保存網絡日誌。 新記錄將附加到 Requests Table 的底部。
要查看 Network 面板中給定條目完整的耗時信息,您有三種選擇。
下面的代碼能夠在 DevTools 的 Console 中運行。 它將使用 Network Timing API 檢索全部資源。 而後,它將經過查找是否存在名稱中包含「style.css」的條目對條目進行過濾。 若是找到,將返回相應條目。
performance.getEntriesByType('resource').filter(item => item.name.includes("style.css"))
若是某個請求正在排隊,則指示:
請求等待發送所用的時間。 能夠是等待 Queueing 中介紹的任何一個緣由。 此外,此時間包含代理協商所用的任什麼時候間。
與代理服務器鏈接協商所用的時間。
執行 DNS 查詢所用的時間。 頁面上的每個新域都須要完整的往返才能執行 DNS 查詢。
創建鏈接所用的時間,包括 TCP 握手/重試和協商 SSL 的時間。
完成 SSL 握手所用的時間。
發出網絡請求所用的時間。 一般不到一毫秒。
等待初始響應所用的時間,也稱爲至第一字節的時間。 此時間將捕捉到服務器往返的延遲時間,以及等待服務器傳送響應所用的時間。
接收響應數據所用的時間。
經過 Network 面板能夠發現大量可能的問題。查找這些問題須要很好地瞭解客戶端與服務器如何通訊,以及協議施加的限制。
最多見問題是一系列已被加入隊列或已被中止的條目。這代表正在從單個網域檢索太多的資源。在 HTTP 1.0/1.1 鏈接上,Chrome 會將每一個主機強制設置爲最多六個 TCP 鏈接。若是您一次請求十二個條目,前六個將開始,然後六個將被加入隊列。最初的一半完成後,隊列中的第一個條目將開始其請求流程。
要爲傳統的 HTTP 1 流量解決此問題,您須要實現域分片。也就是在您的應用上設置多個子域,以便提供資源。而後,在子域之間平均分配正在提供的資源。
HTTP 1 鏈接的修復結果不會應用到 HTTP 2 鏈接上。事實上,前者的結果會影響後者。 若是您部署了 HTTP 2,請不要對您的資源進行域分片,由於它與 HTTP 2 的操做方式相反。在 HTTP 2 中,到服務器的單個 TCP 鏈接做爲多路複用鏈接。這消除了 HTTP 1 中的六個鏈接限制,而且能夠經過單個鏈接同時傳輸多個資源。
又稱:大片綠色
等待時間長表示至第一字節的時間 (TTFB) 漫長。建議將此值控制在 200 毫秒如下。長 TTFB 會揭示兩個主要問題之一。
要解決長 TTFB,首先請儘量縮減網絡。理想的狀況是將應用託管在本地,而後查看 TTFB 是否仍然很長。若是仍然很長,則須要優化應用的響應速度。能夠是優化數據庫查詢、爲特定部分的內容實現緩存,或者修改您的網絡服務器配置。不少緣由均可能致使後端緩慢。您須要調查您的軟件並找出未知足您的性能預算的內容。
若是本地託管後 TTFB 仍然漫長,那麼問題出在您的客戶端與服務器之間的網絡上。不少事情均可以阻止網絡遍歷。客戶端與服務器之間有許多點,每一個點都有其本身的鏈接限制並可能引起問題。測試時間是否縮短的最簡單方法是將您的應用置於其餘主機上,並查看 TTFB 是否有所改善。
又稱:大片藍色
若是您看到 Content Download 階段花費了大量時間,則提升服務器響應或串聯不會有任何幫助。首要的解決辦法是減小發送的字節數。
利用網絡調節,您能夠在不一樣的網絡鏈接(包括 Edge、3G,甚至離線)下測試網站。這樣能夠限制出現最大的下載和上傳吞吐量(數據傳輸速率)。延遲時間操控會強制鏈接往返時間 (RTT) 出現最小延遲。
能夠經過 Network 面板開啓網絡調節。從下拉菜單中選擇要應用網絡節流和延遲時間操控的鏈接。
使用 Chrome DevTools 的 Timeline 面板能夠記錄和分析您的應用在運行時的全部活動。 這裏是開始調查應用中可覺察性能問題的最佳位置。
Timeline 面板包含如下四個窗格:
Overview 窗格包含如下三個圖表:
深色部分表示傳輸時間(下載第一個和最後一個字節之間的時間)。
橫槓按照如下方式進行彩色編碼:
該面板主要能作:
該面板主要能作:
該面板主要能作:
使用左側面板能夠檢查各個安全或非安全源。
點擊安全源查看該源的鏈接和證書詳情。
若是您點擊非安全源,Security 面板會提供 Network 面板過濾視圖的連接。
點擊連接能夠查看具體是源的哪些請求經過 HTTP 提供。
因爲大多數桌面設備都沒有 GPS 芯片和加速度計,因此測試它們比較困難。Chrome DevTools 的 Sensors 模擬窗格能夠經過模擬常見的移動設備傳感器來下降測試的開銷。
要訪問 Chrome DevTools 傳感器控件,請執行如下操做:
注:若是您的應用檢測到使用 JavaScript(如 Modernizr)的傳感器加載,請確保在啓用傳感器模擬器以後從新加載頁面。
與桌面設備不一樣,移動設備一般使用 GPS 硬件檢測位置。在 Sensors 窗格中,您能夠模擬地理定位座標,以便與 Geolocation API 結合使用。
在模擬抽屜式導航欄的 Sensors 窗格中選中 Emulate geolocation coordinates 複選框,啓用地理定位模擬。
您可使用此模擬器替換 navigator.geolocation 的位置值,並在地理定位數據不可用時模擬用例。
要測試來自 Orientation API 的加速度計數據,請在 Sensors 窗格中選中 Accelerometer 複選框,啓用加速度計模擬器。
您能夠操做下列方向參數:
您也能夠點擊模型加速度計並將其拖動到所需方向。
Chrome開發者工具是一個很是強大的工具,靈活使用將讓你在前端調試中事半功倍。
這兩篇文章只是整理的一些我平時經常使用的功能,還有不少的功能等着咱們去挖掘。