浏览器调试(以Chrome浏览器为例)
在开发者工具中进行调试,打开方式:
- 右键检查
- Win: F12 / Ctrl + Shift + i
- Mac: Cmd + Opt + i
代码调试(Sources面板)
进入调试方法
-
面板左侧打上break point(注意source map情况)
-
代码中打入
debugger
仅在开发者工具打开时有效,否则浏览器会忽略它
function hello(name) { let phrase = `Hello, ${name}!`; debugger; // <-- 调试器会在这停止 say(phrase); }
面板功能使用
-
调式的常用区域有如下四个
-
使用Debug时的面板
他们从左到右分别是
- 放开该断点(如果再碰到断点会继续停下,长按选择□即停止debug)
- step over next function call(即下一步但不会进入方法内部)
- step into next function call(即下一步但会进入方法内部)
- step out of current function(跳出当前方法)
- step(下一步)
- deactivate/activate breakpoints (停用/启用所有断点)
Network调试
基本信息
网络面板包含5个窗格:
Controls
(控件) : 使用这些选项可以控制Network
(网络)面板的外观和功能。(英文直译)Filters
(过滤器) : 使用这些选项可以控制在请求列表中显示哪些资源。提示:按住 Cmd (Mac)或 Ctrl (Window / Linux),然后点击过滤器可以同时选择多个过滤器。Overview
(概览) : 这个图表显示检索资源的时间轴。如果您看到多个垂直堆叠的栏,这意味着这些资源被同时检索。Requests Table
(请求列表) : 此列表列出了检索的每个资源。默认情况下,此表按时间顺序排序,也就是最早的资源在顶部。单击资源名称可以获得更多信息。提示:右键单击列表的任何标题栏可以以添加或删除信息列。Summary
(概要) : 概要窗格告诉您请求的总数,传输的数据量,和加载时间。
默认情况下,请求表列显示以下列。您可以添加和删除列(右键单击列表的任何标题栏可以以添加或删除信息列)。
-
Name
(名称) : 资源的名称。 -
Status
(状态) : HTTP状态代码。 -
Type
(类型) : 请求的资源的MIME类型。 -
Initiator
(发起人) : 发起请求的对象或进程。它可能有以下几种值:Parser
(解析器) : Chrome的HTML解析器发起了请求。Redirect
(重定向) : HTTP重定向启动了请求。Script
(脚本) : 脚本启动了请求。Other
(其他) : 一些其他进程或动作发起请求,例如用户点击链接跳转到页面,或在地址栏中输入网址。
-
Size
(尺寸) : 响应头的大小(通常是几百字节)加上响应数据,由服务器提供。 -
Time
(时间) : 总持续时间,从请求的开始到接收响应中的最后一个字节。 -
Timeline
(时间轴) :Timeline
列显示所有网络请求的视觉瀑布。点击此列的标题栏会显示其他排序字段的菜单。
单个请求详情
分为五个板块分别是:
Headers
(标头) : 与资源相关的HTTP头。Preview
(预览) : 预览JSON,图片和文字资源。Response
(响应) : HTTP响应数据(如果有)。Timing
(时序) : 资源的请求生命周期的明细分类。
网络时序Timing
生命周期显示在以下类别中花费的时间:
Queuing
(排队)Stalled
(停滞)- 如果适用:
DNS lookup
(DNS查找),initial connection
(初始连接),SSL handshake
(SSL握手) Request sent
(请求发送)Waiting
(等待)(到开始下载第一个字节的时间(TTFB))Content Download
(内容下载)
【重要】请求列表信息
在不同的选项中可能会有不同的请求我们一般常用的会有
-
Replay XHR —— 重发请求,无需点击按钮触发了
-
如果需要修改参数重发请求可以
- 选择
Copy as fetch
- 控制台粘贴代码
- 修改参数,回车搞定
- 选择
-
-
copy as cURL
参考文献: