巧用 Chrome:网络知多少

开发者如数家珍的工具中,Chrome 想必是众多人心目中的白月光,倒也不是它有多么优秀,而是多亏同行浏览器们的衬托。其开源的内核 Chromium 也成就众多养家糊口的岗位,比如 Edge、Opera、QQ 浏览器、360 浏览器等等国内外一票浏览器。

Chrome 在 DevTools 中提供了诸多奇技淫巧,巧用 Chrome 系列文章将会列举直呼 “Awasome” 的技巧,让你更好地调戏 Chrome。

网络构建了互联网虚伪的繁荣,一句“断网了”就能让大多数人抓狂。网络对愚蠢的人类至关重要,它提供了信息、情绪、身份还有意义。成也网络败也网络,前后端联调时更是如此,本篇将会介绍 DevTools 网络面板(Network)相关功能。

1. 清理网络请求

一键重置网络面板所有记录,还你干净如初。

2. 过滤请求

点开后可以根据 Fetch/XHR、JS、CSS 等等选项请求过滤请求:

按住 Ctrl 或者 Command 进行点击可以多选,比如同时过滤 JS 和 CSS 类型的文件:

同时提供 Filter 输入框,可以根据输入的名称进行过滤,当然,你也可以写正则表达式,比如用 /(css|js)$/ 过来同时过滤 css 和 js 文件:

加个短横 - 可以取反:

3. 保存所有网页请求

刷新页面所有请求都会重置掉,这对调试接口非常不方便,因为我们经常需要做前后请求对比,打开保存日志(Preserve Log)选项,将网页请求记录一直保存下来。

4. 禁止缓存

缓存对用户体验来说非常重要,但对开发来说非常不需要。打开禁止缓存(Disable Cache),拒绝所有缓存。

5. 网页加载截图

查看请求,你可能常用的 waterfall 图表,但网络面板其实还提供了网页加载截图,让你可视化形式查看。

6. 禁止某些请求

在分析网页性能的时候,可以通过禁止某些请求来做控制变量法。

这个方法只能单个单个禁止请求,Chrome 还提供了个根据模板禁止请求,首先Ctrl + Shift + P(Mac 用 Command + + P )或者

运行命令菜单(Run command),搜索 Show Network request blocking 并运行它:

比如禁止所有 CDN 文件,可以这样写: https://cdn.heighliner.cloud/*

在这里插入图片描述

这里虽然叫做模板(Pattern),但是并不能用正则表达式,只能用通配符(*),弱鸡的 Chrome。

7. 模拟网络情况

大多数情况下,浏览器会发起畅通无阻的网络请求,但某些场景下我们希望它们不畅通且有阻。

节流(Throttling)处可以控制网络的快慢,默认提供快速 3G、慢速 3G、离线(Offline)。

当然你也可以进行自定义,其实无非就是控制下载(Download)、上传(Upload)和延迟(Latency)的值。

8. 查看 Load 事件

网络面板有多个地方展示 DOMContentLoadedload 事件的时间点,蓝线对应 DOMContentLoaded 事件,红线代表 load 事件。

话说 Chrome 这里有个 BUG,暗黑模式和明亮模式下颜色表现不太一致。

在这里插入图片描述

9. 查看请求情况

在分析一个网站性能时候,有几个总数据值得参考。

第一个是网站总的请求数量,这里显示为 33

第二个是传输的资源大小,这里为 731kB

第三个是传输过来的资源解压之后的大小,这里为 1.9MB

打开 Use large request rows ,可以详细看到每个请求解压前后的资源大小。

在这里插入图片描述

10. 分享请求

前后端接口联调对线的时候,经常需要查询接口详情,扔一两张截图或许方便但不够详细,HARHTTP Archive)是一种基于 JSON 格式的存档文件,你可以把所有 HTTP 请求下载成 HAR 文件:

扔给对方导入:

11. 查看资源来源

在资源面板查看文件时,Reveal in Network panel 可以定位资源属于那个请求:

后记

网络的重要性不言而喻,Chrome 也给予了相当的重视,DevTools 网络面板上的功能足够方便易用,这篇文章仅涉猎常用、实用的功能技巧,抛砖引玉,如果读者想了解网络面板功能,请移步 Chrome 的 DevTools 官网。

了解再多技巧而无用武之地的话,终究是屠龙之术华而不实,这些功能说到底只能是辅助,真正应该掌握的,还是抽丝剥茧的逻辑分析思维、按图索骥的网络排查思路还有破釜沉舟的问到底精神。

猜你喜欢

转载自blog.csdn.net/YopenLang/article/details/128271127