瀏覽器DevTools使用技巧

来源:https://www.cnblogs.com/dtux/archive/2022/12/06/16954410.html
-Advertisement-
Play Games

我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式數據中台產品。我們始終保持工匠精神,探索前端道路,為社區積累並傳播經驗價值。 本文作者:正則 作為一名前端開發人員,平時開發中使用最多的就是 Chrome devtools,但可能很多同學像我一樣平時用的最多也就 Console、Elements ...


我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式數據中台產品。我們始終保持工匠精神,探索前端道路,為社區積累並傳播經驗價值。

本文作者:正則

作為一名前端開發人員,平時開發中使用最多的就是 Chrome devtools,但可能很多同學像我一樣平時用的最多也就 Console、Elements 和 Network 面板了。除了我們常用的一些功能,它還提供了很多強大但我們不太常見的功能,這些功能可以大大提高我們的開發效率。下麵我們就來瞭解一下。

使用Chrome的截圖工具

進行網頁截圖,一般情況我們都使用的是第三方工具,但其實 Chrome 已經為我們提供了截圖功能。使用Command+SHIFT+P(MAC)/CTRL+SHIFT+P(Window)打開命令菜單,輸入框中輸入“capture”會自動聯想到截圖命令。

file

  • Capture area screenshot

    自定義截圖區域,與常用的截圖工具類似

  • Capture full size screenshot

    截取html完整渲染圖

  • Capture node screenshot

    截取某個 DOM 節點的渲染圖,使用前需要先在 Elements 下選中節點,也可以選中節點後,點擊右鍵選中菜單中的 Capture node screenshot

  • Capture screenshot

    截取瀏覽器視窗內的區域

flex 調試面板

對使用了 flex 佈局的元素,點擊 display: flex 右側的按鈕,就會出現 flex 調試面板,可以直觀的修改 flex 相關樣式,便於進行樣式調試。

file

Console面板相關

$0、$1、$2、$3、$4

$0 是對當前在 Element 面板中選中的 html 節點的引用,$1是對上一次選擇節點的引用,以此類推直到$4,通過$的引用可以讀取 DOM 節點的一些屬性。

file

$ 和 $$

$ 等價於 document.querySelector()

$$ 等價於 document.querySelectorAll()

file

$_

$_為對上次輸出結果的引用

file

console.table

console.table 可以將數組或對象以 table 方式展示,同時也可以展示對象屬性。console.table 接受兩個參數,第一個為要現實的數據,第二個參數為包含列名稱的數組。

file

time 與 timeEnd

console.time 與 console.timeEnd,兩個方法配合計算並列印代碼執行時間。

file

在控制台快速發送請求

在平時的介面調試中,對於同一個介面,我們有時需要修改傳入參數並重新發送,對於有些請求可以刷新下頁面或者重新操作下即可重新發送,如果對於一個大型表單輸入參數發送請求並且進行了頁面跳轉後,還需要再次調試,針對這樣的場景,再次去輸入表單去重新發送請求顯然效率是非常低的,那有什麼捷徑呢?
在 Chrome 中我們可以進行以下操作:

  1. 打開 Network 面板,選中 Fetch/XHR;
  2. 選擇要重新發送的請求,單擊右鍵選擇 Copy,選中 Copy as fetch;
  3. 進入 Console 粘貼,修改輸入參數並重新發送。

file

在 Edge 瀏覽器中除了使用 Chrome 中的方法外,還可以使用 Network Console 進行重新請求,具體操作如下:

  1. 選擇要重新發送的請求,單擊右鍵選擇 Edit and Resend;
  2. 進入 Network Console 面板,修改參數後點擊 send 即可發送請求。

file

使用 Import HAR file / Export HAR file 復現網路請求

file

在 Network 面板上分別有 Import HAR file 和 Export HAR file 按鈕,點擊 Export HAR file 按鈕會導出har文件,文件中保存了瀏覽器與伺服器交互的一些數據,我們可以在任意瀏覽器頁面中點擊 Import HAR file 導入 har 文件復現當時的請求。

file

使用場景:當在客戶環境我們不方便直接訪問,假如由於網路問題或傳參問題等問題導致介面報錯問題時,我們可以通過導出 har 文件,在我們本地復現當時的網路請求狀況。

條件斷點

當清晰知道要調試的範圍,且只調試某指定條件分支下使用,當滿足條件時,斷點才會生效。
使用方法:在行號處點擊 Add Conditional Breakpoint...,即可添加代碼行條件斷點。

file

事件斷點

如果對代碼不熟悉或者在較長的代碼邏輯中,只是知道點擊觸發業務邏輯時,可以考慮事件監聽斷點。

file

DOM斷點

當 DOM 節點發生變化時添加斷點,會定位到修改 DOM 的那行代碼。

file

file

說明:

  1. subtree modifications 當前 DOM 子節點有任何變化時觸發斷點
  2. attribute modifications 當前 DOM 本身屬性有任何變化時觸發斷點
  3. node removeal 當前 DOM 節點被移除時觸發斷點

使用 Snippets 編寫代碼片段

在平時開發中,常常會有些 JS 代碼需要在瀏覽器中調試,直接在 console 下寫會比較麻煩,這時可以使用 Chrome 提供的 Snippets 功能。
使用方法:

  1. 在 Sources 下選擇 Snippets,點擊 “New Snippet” 按鈕,創建一個新的代碼片段;
  2. 在代碼區域輸入代碼;
  3. 按下“Command+Enter”或者點擊右下方按鈕即可執行代碼。

file

此外也可以使用 Snippets 存儲一些常用的代碼片段,如防抖、節流、正則表達式等代碼,這樣每次打開 Devtools 都能獲取到這些代碼,而不用去百度。
SnippetsConsole 對比

Snippets Console
跨標簽頁可用 當前標簽頁可用
永久保存,除非手動刪除 頁面重載後清除

總結

Chrome DevTools提供了更多強大的功能供我們使用,它們可以大大的提高我們的開發效率。以上只是Chrome DevTools里一小部分使用技巧,更多的使用技巧歡迎大家在評論區補充分享。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作者:李浩 責編:宇亭 當我們選擇一款 HTAP 資料庫時,總是先被其相關文檔里所描述的優異性能所吸引。卓越的性能是我們選擇一款產品的出發點,因為我們希望該款產品能夠解決我們業務中的痛點。而大家使用 HTAP 產品的出發點就是希望該款資料庫能夠解決我們在事務處理過程中的實時分析痛點。不過,性能優勢只 ...
  • China Taiwan 中國臺灣 2022 年 11 月 1 日,BSMI和經濟部發佈了針對 18 種音像產品的修訂法定檢驗要求。 自發佈之日起,CNS 15598-1:2020 Audio/video, information and communication technology equip ...
  • 本次我把CSS中的重難點整理出來,總共54個核心知識點,供大家複習,希望能幫到大家。這些重難點是進階高薪必需要掌握的知識點,同時也是面試必問的內容。 ...
  • 以前真機調試手機頁面,都是使用數據線連接手機和電腦,近日身邊沒有USB數據線,折騰了下如何不依賴數據線只用無線調試手機頁面,教程如下。 本教程適用於安卓11以及以上版本。否則應該使用USB數據線連接。 一、安裝adb工具 下載地址:https://developer.android.com/stud ...
  • 前面的文章分享了組件庫的開發、example、組件庫文檔,本文分享組件庫 cli 開發。 1 為什麼要開發組件庫 cli 回顧一個新組件的完整開發步驟: 1 在 packages 目錄下創建組件目錄 xxx: 1.1 使用 pnpm 初始化 package.json,修改 name 屬性; 1.2 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 因公司業務需要,需要開發水印相機功能,而項目代碼用的uniapp框架,App端只能簡單調用系統的相機,無法自定義界面,在此基礎上,只能開發自定義插件來完成功能(自定義原生插件,即是用原生代碼來編寫組件實現功能,然後供uniapp項目調用) ...
  • Type 描述:全稱叫做 '類型別名',為類型字面量提供名稱。比 Interface 支持更豐富的類型系統特性。 Type 與 Interface 區別 Interface 只能描述對象的形狀,Type 不止 Interface 能多次聲明進行擴展,Type 不行 在性能方面,Type 介面檢查能夠 ...
  • 在過往,我們想要實現一個圖片的漸隱消失。最常見的莫過於整體透明度的變化,像是這樣: <div class="img"></div> div { width: 300px; height: 300px; background: url(image.jpg); transition: .4s; } .i ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...