百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Chrome 开发工具之Network

zhezhongyun 2024-12-13 17:12 42 浏览

经常会听到比如"为什么我的js代码没执行啊?","我明明发送了请求,为什么反应?","我这个网站怎么加载的这么慢?"这类的问题,那么问题既然存在,就需要去解决它,需要解决它,首先我们得找对导致问题的原因,才能"对症下药"。

每个文件的载入、每次发送的请求也都是一次网络交互,所以在这个面板中,我们能够看到我们所需要的js文件是否被加载?我们所请求的接口到底返回了没有?我们能够知道哪个文件拖慢了整个web页的加载过程?Netwrok面板中会记录应用程序的每一次网络交互信息,每次交互的详细时间、HTTP请求头和响应头、cookies、WebSocket的数据等等...

面板的资源数据依赖的是javascript的资源计时api,对于每一个资源的加载都提供详细的同步数据。比如,明确列出当一个http开始请求的时间及最后字节接收完的时间以及详细过程。我们也可以通过window.performance.getEntries方法获取资源加载列表,下面给出列表中第一个对象的属性截图。

简单过一遍这些属性的含义(这些属性都是只读的)

connectEnd:浏览器与服务器完成建立用以检索资源的网络连接的时间戳

connectStart:浏览器与服务器开始建立用以检索资源的网络连接的时间戳

damainLookupEnd:浏览器完成资源的域名解析的时间戳

damainLookupStart:浏览器开始进行资源的域名解析的时间戳

duration:资源请求从开始到结束的时间差

entryType:PerformanceEntry对象的类型,该对象封装一个单一的性能指标作为性能表的一部分,此类型值

是"frame","mark","measure","navigation","resource","server"的其中一个。

fetchStart:浏览器开始获取资源的时间戳

initiatorType:资源文件的类型

name:资源的url

redirectEnd:接收到重定向资源的最后一个响应字节的时间戳

redirectStart:启动重定向以获取资源的开始时间戳

requestStart:浏览器从服务器请求资源的开始时间戳

responseEnd:浏览器接收到资源最后一个字节的时间戳,或者关闭传输连接的时间戳

responseStart:浏览器接收到服务器的响应的第一个字节的时间戳

secureConnectionStart:浏览器开始握手协议,以保护当前连接的安全性,握手开始的时间

startTime:浏览器开始获取资源前的时间戳(整个过程的开始时间)

workerStart:如果当前上下文是"worker",返回开始获取资源的时间戳,否则返回0(应该是应用于双工通信的)

回到Network,我们来看看这个面板

认识Network

记录按钮

处于打开状态时会在此面板进行网络连接的信息记录,关闭后则不会记录。

清除记录

清除当前的网络连接记录信息。

捕获截屏

记录页面加载过程中一些时间点的页面渲染情况,截图根据可视窗口截取,如下图所示。

过滤条件

自定义

选择框内可输入过滤关键字进行资源列表的过滤,如下图所示。

也可进行指定条件的搜索,如下图。

指定条件有哪些?

domain:资源所在的域,即url中的域名部分。如 domain:api.github.com

has-response-header:资源是否存在响应头,无论其值是什么。如 has-response-header:Access-Control-Allow-Origin

is:当前时间点在执行的请求。当前可用值:running

larger-than:显示大于指定值大小规格的资源。单位是字节(B),但是K(kB)和M(MB)也是可以的~ 如larger-than:150K

method:使用何种HTTP请求方式。如 GET

mime-type:也写作content-type,是资源类型的标识符。如 text/html

scheme:协议规定。如 HTTPS

set-cookie-name:服务器设置的cookies名称

set-cookie-value:服务器设置的cookies的值

set-cookie-domain:服务器设置的cookies的域

status-code:HTTP响应头的状态码

按钮组

根据按钮规定的条件进行筛选,比如下图过滤出图片。

显得太高端,竟然还可以浏览图片。

按钮组有: All,XHR,JS,CSS,Img,Media,Font,Doc(Document),WS(WebSocket),Manifest,Other。

资源列表样式

资源列表详细信息和缩略信息的显示。

保存日志

在页面重新加载或者url改变时保留日志(包括资源列表和时间轴上的数据)。

是否缓存

当打开开发者工具时生效,打开这个开关,则页面资源不会存入缓存,可以从Status栏的状态码看文件请求状态。

限流控制(网速模拟)

模拟不同网速下的环境加载当前页面,直接看图就能知道怎么用了。

时间轴

图中有两条线,一条蓝色的,一条橙色的。

蓝色线代表DOM已加载完成,红色线表示页面加载完(包括资源引用),也可以用代码对这两个事件进行监听,在这两个事件完成的时间点做对应的操作。

    window.addEventListener('DOMContentLoaded',function(e){
      e.cancelBubble = true;
      console.log(window.performance.now);
    },true);
    window.addEventListener('load',function(e){
      e.cancelBubble = true;
      console.log(window.performance.now);
    },true);

回到时间轴,来探查它给我们提供了什么信息。

配合资源列表的timeline使用,我们选中一段时间内的资源加载情况来看看。

图中截取的大致时间是5.2~5.75左右的一小截,没一条多色线代表一个资源的网络交互情况,上面的时间轴中有2个资源是刚开始进行网络连接,有3个资源已经加载完毕,还有1个资源全程都在加载过程中;然后对应资源列表中的timeline字段,能够发现情况其实和上面是一样的,并且在这里还能够明确的看到这是哪个文件及其详细信息。

然后将鼠标放到timeline中的多色线上,还能够看到资源请求的详细信息,如图所示。

可以明确的看出一条资源的列队、停滞、代理协议、初始化连接、SSL协议、发送request、等待及内容下载所耗的时间。

既然都说这么多了,就将timeline从资源列表中提取出来提前讲了吧,点击timeline列的标题,会有一些选项,这里介绍下这些选项。

Start Time:根据每个网络请求的发送时间排序,也是默认排序

Respone Time:根据每个网络请求的响应时间排序

End Time:根据每个网络请求的完成时间排序

Total Duration:根据每个网络请求的总耗时排序

Latency:根据每个网络请求的发送请求时间点和得到响应时间点的时间差排序

资源列表

资源列表展示了所有资源请求的信息,字段也是很多,在下面都会列出来,但不会每一个都进行详细探讨(以详细模式的为案例吧,缩略模式的也包含在里面)。

Name(Path):资源的名称和url

Status(Text):HTTP请求状态码及文字说明

Type:所请求的资源的MIME类型

Method:HTTP请求发送方式

Domain:资源所在域

Cookies:网络请求所产生的cookies的数量

Size(Content):size是响应头和响应体相加的大小规格,content是资源解码内容的大小规格

Time(Latency):time是整个网络交互所耗的总时间,从发送请求到接收最后一个字节,latency是响应时加载第一个字节的时间Timeline:时间轴(已介绍,略过...)

此外还有Cache-Control(缓存操作,网页缓存由 HTTP消息头中的Cache-control控制)、Connection(连接状态,如 keep-alive)、Connection Id(连接id)、Content-Encoding(连接解码,如 gzip)、Content-Length(内容长度)、ETag(Entity Tag,资源的实体标签)、Initiator(触发点)、Keep-Alive(据说功能是使客户端到服务器端的连接持续有效)、Last-Modified(最后修改时间)、Priority(优先级)、Protocol(协议)、Remote Address(远程地址)、Scheme(协议模式)、Set-Cookies(服务端设置cookies)、Vary(浏览器与服务器的编码协议规定)

以上各个知识点可自行搜索,网上资料不少哦(指的是google...)

资源的详细信息

Headers:Header面板列出资源的请求url、HTTP方法、响应状态码、请求头和响应头及它们各自的值、请求参数等等。如图所示

Preview:预览面板,用于资源的预览。

Response:响应信息面板包含资源还未进行格式处理的内容,如常见的json数据,当然,下面的截图不符合之前说的json数据,而是jsonp的...

Cookies:cookies面板显示该资源请求中所传输的所有cookies信息,并以表格形式展示。

Timing:资源请求的详细信息,上面有描述。如图

还有WebSocket面板,在需要实现双工通信的时候会有,暂时未涉及到,不是很了解,之后如有理解到再做补全。

信息归总

主要展示了一些基本的统计信息,请求总次数、传输总大小,总耗时多少、DOM加载完的时间、页面加载完的时间(包含资源),如图

就这些吧,如有不正之处,敬请指出~ 同时欢迎交流~

相关推荐

DNF无色流派还在继续,重力之泉龙战八荒测评

作者:礁石22222前言本篇为115级套装天天鉴栏目,来帮助各位读者对于新版本的装备有一个更清晰的认知。115级套装分为了稀有到太初5个品级,所有套装的稀有品级属性是一致的,从神器开始出现分歧。通过积...

《暗黑破坏神2重制版》常用符文之语P3

大家好我是游戏小白,继续补充一下《暗黑破坏神2重制版》常用的符文之语,主要给大家总结一下前期过渡常用符文之语。没看过之前关于符文之语总结的小伙伴可以翻翻前面的文章。1、钢铁符文之语钢铁造价极低但性价比...

魔兽怀旧服:P1一款法系BIS披风,获取方式隐蔽,需完成875个任务

在魔兽怀旧服WLK版本,依旧存在许多实用的制造业装备,特别是在P1阶段,制造业装备的耐用性和性价比是最高的,不仅可以帮助玩家快速过渡到团本,甚至还有个别制造业装备超越了团本掉落的强度,除了玩家近期讨论...

分手类型——过渡阶段

过度阶段一.内涵:类似于反复期,在这个阶段儿可能会出现两种可能性。1.感性想分手,但理性上舍不得。感性上我完全不想跟他相处,但理性上我又觉得他身上有很多对我有利的,对我未来有机会有利的东西。二.理性...

《最后的信仰》新手开局保姆级指南职业选择、属性加点与开荒策略

《最后的信仰》作为类魂动作游戏,开局选择直接影响开荒体验。本文针对新手玩家,从职业特性、属性分配到武器过渡,提炼高效开荒公式,助你避开陷阱,快速掌握战斗节奏。一、职业选择:斗士/盗贼优先,法系/...

DNF回血秘方揭示,夏日前买必看篇

作者:辽宁吴彦祖前言(省流速览)夏日礼包购买理由:夏日礼包是DNF四大礼包之一(新春&耕耘&夏日&金秋),错过销售日期后续想获得部分道具难度极大。主打暖暖时装、特色补齐、海量打...

DNF手游:55级粉装有大作用!强化继承大法,可节省大量幸运符

55级粉装的自身属性,实际上比较一般,但它可以用来作为“过渡胚子”,能够帮大家节省很多幸运符和宇宙精华!1、强化继承大法因为不断有玩家翻出了55级团本武器,这把武器肯定是当前版本毋庸置疑的版本答案,但...

魔兽世界50级职业任务装备如何选择,手把手教学

魔兽世界50级职业任务,我们装备应该如何选择,今天分身一个文章告诉你,我们知道BWL开放,也会开放50级的职业任务,那么50级的职业任务,对某些职业来说还是非常重要的,因为给的装备。有的甚至可以用到7...

暗牧的T5与散件如何取舍?认准自己的团队地位才最重要

牧师作为《魔兽世界》中的老牌职业历经许久已经收获了不少的信仰者,而在笔者看来牧师的最大特色便是风格完全不同的三系专精,在TBC时期,Raid本中的牧师大多为神牧,而戒律牧基本只活跃在竞技场和战场上,而...

DNF:魂异界传说宝珠曝光!属性设计一般般,男枪第五转职专属

魂异界地下城“炒冷饭”,定位新春活动副本,奖励道具覆盖面广,涉及白金徽章、转职书、矛盾材料等等。解锁魂异界次元等级,还能兑换传说宝珠,属性也逐渐浮出水面,却比较鸡肋,“抠门”发挥的淋漓尽致!太“抠门”...

SwiftUI入门五:让视图和过渡动起来

在使用SwiftUI的时候,无论效果在哪里,我们都可以单独的让视图的变化动起来,或者让视图的状态的变化动态化。SwiftUI会为我们处理那些组合的、层叠的以及可中断的动画的复杂性。在这个教程中,我们会...

DNF:又是变强的一年?2024耕耘礼包提升率揭晓

作者:assddde前言国服耕耘礼包的内容已经爆料了。对去年拉满耕耘的奶系职业的而言,今年的提升点为纹章加入了1%的增益量增幅。对C而言,今年换装称号中还加入了buff换装词条。而对于错过了新春套的C...

魔兽世界:TBC第一阶段还有必要刷T4套吗,D3套能否过渡到T5套?

T4套真的不如D3套?TBC怀旧服P1阶段目前已经走过大半,作为这个阶段装备等级最高的套装T4套装,游戏中有很大争议。比如猎人玩家会选择D3套,直接跳过T4到T5阶段,而法师甚至会选择继续使用T3套装...

《异世界勇者》390版本开荒&毕业攻略——狂暴战

虽然说这个版本是防战的本命版本,但是从大家催更的频率来看,狂暴战依旧是碾压的优势,今天给大家分享一下390版本狂暴战的毕业游玩思路,希望对你有帮助。今天给大家带来的是手动速刷版的攻略,想要挂机过本需要...

飞飞重逢:装备属性卡全攻略,五色神卡助你战力飙升快速获取

在游戏中,装备属性卡是提升战斗力的关键道具,它能赋予装备特殊的元素属性,不仅大幅提升攻击力,还能针对不同怪物打出克制伤害。属性卡分为火、水、风、土、电五种元素,每种都能为装备附加独特的攻击特效。那么如...