performance中有多个性能指标
navigation
performance.getEntriesByte('navigation')
resource
performance.getEntriesByType('resource')
以掘金官网为例,下面是一个网络请求的性能数据
- domainlookupStart:dns解析开始时间
- domainLookupend:dns解析结束时间,二者差值为dns解析耗时
- 当从performance中获取的这两个值为0的时候,应该是用了跨域的接口,并在响应头里没有Timing-Allow-Origin的字段,来允许浏览器采集性能数据。
- connectStart:连接开始建立
- secureConnectionStart:TLS握手开始
- connectEnd:连接建立完成,也是握手结束时间
- fetchStart:表示浏览器获取资源的时间,非从服务器获取,而是从检查本地缓存开始
- workeStart:表示从service worker开始获取资源的时间,如果没有安装service worker,则是0
- requestStart:表示浏览器开始发起网络请求的时间
- responseStart:表示服务响应的第一个字节到达的时间
- responseEnd:表示服务器响应的最后一个字节到达时间,资源下载完成
- transferSize:资源传输总大小,包含header
- encodedBodySize: 表示压缩之后的body大小
- decodedBodySize: 表示解压之后的body大小
采集数据后如何上传,目前主流的做法是用navigatior.beacon,可以查阅资料进行学习!