当前位置:首页 > 科技  > 软件

前端性能指标--首屏时间统计

来源: 责编: 时间:2023-11-28 09:37:16 373观看
导读Part 01 白屏和首屏时间 - 白屏:从用户请求页面开始到显示第一个字符的时间。中间包括DNS查询、建立TCP链接、发送首个HTTP请求、返回HTML文档、HTML文档head解析完毕。通常认为浏览器开始渲染标签或者解析完标签的时

iqe28资讯网——每日最新资讯28at.com

Part 01 白屏和首屏时间 

- 白屏:从用户请求页面开始到显示第一个字符的时间。中间包括DNS查询、建立TCP链接、发送首个HTTP请求、返回HTML文档、HTML文档head解析完毕。通常认为浏览器开始渲染标签或者解析完标签的时刻就是页面白屏结束的时间点。iqe28资讯网——每日最新资讯28at.com

- 首屏:指用户打开网站开始,到浏览器首屏内容渲染完成的时间,对于用户体验来说,首屏时间是用户对一个网站的重要体验因素。iqe28资讯网——每日最新资讯28at.com

Part 02 PerformanceTiming 

performance.timing记录了用于分析页面整体性能指标的关键时间点,包含网络、解析等一系列的时间数据。最好在页面完全加载完成之后再使用,因为很多值必须在页面完全加载之后才能得到。最简单的办法是在window.onload(vm.$nextTick 或 react hooks useEffect)事件中读取各种数据。iqe28资讯网——每日最新资讯28at.com

在浏览器控制台,console输入performance可以查看到performance.timing相关时间节点:iqe28资讯网——每日最新资讯28at.com

iqe28资讯网——每日最新资讯28at.com

图1 performance.timing参数介绍iqe28资讯网——每日最新资讯28at.com

通过PerformanceTiming不仅可以帮助我们省去繁琐的手动打点操作,还可以帮助我们获取很多其他数据,对于整个时间节点的对应关系:下图显示了PerformanceTiming中定义的所有时间戳属性。iqe28资讯网——每日最新资讯28at.com

iqe28资讯网——每日最新资讯28at.com

图2 performance.timing参数说明iqe28资讯网——每日最新资讯28at.com

比较有用的页面性能数据大概包括如下几个:iqe28资讯网——每日最新资讯28at.com

重定向耗时:redirectEnd - redirectStartiqe28资讯网——每日最新资讯28at.com

DNS查询耗时:domainLookupEnd - domainLookupStartiqe28资讯网——每日最新资讯28at.com

TCP链接耗时:connectEnd - connectStartiqe28资讯网——每日最新资讯28at.com

HTTP请求耗时:responseEnd - responseStartiqe28资讯网——每日最新资讯28at.com

解析dom树耗时:domComplete - domInteractiveiqe28资讯网——每日最新资讯28at.com

白屏时间:responseStart - navigationStartiqe28资讯网——每日最新资讯28at.com

DOM ready时间:domContentLoadedEventEnd - navigationStartiqe28资讯网——每日最新资讯28at.com

onload时间:loadEventEnd – navigationStartiqe28资讯网——每日最新资讯28at.com

Part 03 MutationObserver API 

MutationObserver API让我们能监听dom树变化,在首屏的加载中,会涉及到dom的增加、修改、删除,所以会触发多次MutationObserver。iqe28资讯网——每日最新资讯28at.com

1)利用MutationObserver监听document对象,每当dom变化时触发回调函数;iqe28资讯网——每日最新资讯28at.com

2)判断监听的dom是否在首屏内,如果在首屏内,将该dom放到指定的数组中,记录下当前dom变化的时间点;iqe28资讯网——每日最新资讯28at.com

3)在MutationObserver的callback函数中,通过防抖函数,监听document.readyState状态的变化;iqe28资讯网——每日最新资讯28at.com

4)当document.readyState === 'complete',停止定时器和 取消对document的监听;iqe28资讯网——每日最新资讯28at.com

5)遍历存放dom的数组,找出最后变化节点的时间,就是首屏加载完成的时间。iqe28资讯网——每日最新资讯28at.com

监听container外层容器的变化,当触发回调函数时,判断对应的事件类型以及新增加的子dom是否是首屏展示的dom节点。iqe28资讯网——每日最新资讯28at.com

iqe28资讯网——每日最新资讯28at.com

尽管现在的MutationObserver在移动端兼容性比较好,但为了更好的兼容,我们可以另外引入MutationEvents API。iqe28资讯网——每日最新资讯28at.com

Part 04 webview里H5页面首屏时间

iqe28资讯网——每日最新资讯28at.com

4.1 WebView初始化阶段

该阶段包括几个主要步骤:iqe28资讯网——每日最新资讯28at.com

(1)开始解析Url(Url中可能包含${}需要解析的字段)iqe28资讯网——每日最新资讯28at.com

(2)完成解析Urliqe28资讯网——每日最新资讯28at.com

(3)开始校验Url是否可以打开iqe28资讯网——每日最新资讯28at.com

(4)结束校验Urliqe28资讯网——每日最新资讯28at.com

(5)开始加载Url到webview容器iqe28资讯网——每日最新资讯28at.com

和家亲app jsbridge提供了getPerformInfo方法可以帮助我们获取WebView性能数据:iqe28资讯网——每日最新资讯28at.com

WebViewUrlLoaded WebView加载url时间:startLoadUrl(开始加载Url到webview容器) - startProcessUrl(开始解析Url);iqe28资讯网——每日最新资讯28at.com

4.2 HTTP请求服务阶段

该阶段包括几个主要步骤:iqe28资讯网——每日最新资讯28at.com

(1) DNS查询iqe28资讯网——每日最新资讯28at.com

(2) 等待 TCP 队列iqe28资讯网——每日最新资讯28at.com

(3) TCP链接iqe28资讯网——每日最新资讯28at.com

(4) 发起http请求和响应iqe28资讯网——每日最新资讯28at.com

(5) 服务器端处理HTTP请求,服务器端处理HTTP请求,浏览器得到html代码iqe28资讯网——每日最新资讯28at.com

(6) 开始head解析iqe28资讯网——每日最新资讯28at.com

该阶段的时间从webview容器开始加载Url开始到完成head解析,可以使用window.performance.timing.responseStart - startLoadUrl(开始加载Url到webview容器)iqe28资讯网——每日最新资讯28at.com

4.3 静态资源下载

该阶段包括几个主要步骤:iqe28资讯网——每日最新资讯28at.com

(1) head解析并开始请求静态资源(如js、css、图片等)iqe28资讯网——每日最新资讯28at.com

(2) 静态资源下载完成iqe28资讯网——每日最新资讯28at.com

(3) 开始解析静态资源iqe28资讯网——每日最新资讯28at.com

该阶段的时间从开始请求静态资源,到开始解析静态资源(比如JS),我们可以在js文件开始自定义JscriptLaunch字段,并赋值给window.preformance对象,(window.PerformInfo || (window.PerformInfo = {})).JscriptLaunch = new Date().getTime(); 以便于我们统计该阶段的时间:window.PerformInfo.JscriptLaunch - window.performance.timing.responseStart。iqe28资讯网——每日最新资讯28at.com

4.4 API调用和首屏dom渲染

该阶段包括几个主要步骤:iqe28资讯网——每日最新资讯28at.com

(1) 开始解析静态资源,请求APIiqe28资讯网——每日最新资讯28at.com

(2) 响应数据iqe28资讯网——每日最新资讯28at.com

(3) 下载资源并渲染domiqe28资讯网——每日最新资讯28at.com

(4) 首屏内容加载完成iqe28资讯网——每日最新资讯28at.com

利用MutationObserver监控DOM的变化,获取首屏dom加载完成的时间,用该时间点减去window.PerformInfo.JscriptLaunch,就获得了该阶段的时间。iqe28资讯网——每日最新资讯28at.com

Part 05 数据上报

将统计到的数据以图片打点、fetch请求或Beacon等形式进行上报,可以帮助我们后续进行分析和优化。iqe28资讯网——每日最新资讯28at.com

5.1 直接发请求上报

直接将数据通过ajax发送到后端有一个问题,就是在页面卸载或刷新时进行上报的话,请求可能会在浏览器关闭或重新加载前还未发送至服务端就被浏览器cancel掉,导致数据上报失败。iqe28资讯网——每日最新资讯28at.com

5.2 利用图片上报

服务器端并不关心具体的数据上报方式,无论是请求image文件还是请求其他普通文件(JS)或者是请求接口,可以进行数据上报。iqe28资讯网——每日最新资讯28at.com

使用image有几个优点:iqe28资讯网——每日最新资讯28at.com

图片的src属性并不会跨域,不会出现跨域问题;iqe28资讯网——每日最新资讯28at.com

大部分浏览器会延迟卸载(unload)文档以加载图像,可以避免第一种方法的问题;iqe28资讯网——每日最新资讯28at.com

只要在js中new出Image对象就能发起请求,不用插入dom中,可以防止阻塞页面加载,影响用户体验;iqe28资讯网——每日最新资讯28at.com

相比PNG/JPG,GIF的体积最小,最适合进行上报,一般采用1*1像素的透明gif进行上报。iqe28资讯网——每日最新资讯28at.com

5.3 css定义content

通过css定义content,按钮点击就会上报,但是不能动态传入一些变量。iqe28资讯网——每日最新资讯28at.com

iqe28资讯网——每日最新资讯28at.com

5.4 Beacon

Beacon可将数据异步发送至服务端,且可能保障在页面卸载实现前发送申请(解决页面卸载会终止请求的问题)。iqe28资讯网——每日最新资讯28at.com

iqe28资讯网——每日最新资讯28at.com

Part 06 总结

页面首屏加载时间是个重要的性能指标,通过上面的方式对首屏时间进行统计分析,可以帮助我们有针对性的进行性能优化。同时页面性能的提升,带给用户更好的产品体验,这样才会得到好的产品反馈,给企业带来价值。iqe28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-34681-0.html前端性能指标--首屏时间统计

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Javascript的闭包有哪些应用?你学会了吗?

下一篇: 一文搞懂Go gRPC服务Handler单元测试

标签:
  • 热门焦点
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
Top