计算首屏时间

68 篇文章 1 订阅
22 篇文章 1 订阅

注意:计算首屏时间浏览器提供了一个performance的api

fp(白屏)和fcp(首屏):

https://segmentfault.com/a/1190000022233919
在这里插入图片描述
注意:把浏览器记录的fp(白屏)时间 减去 发出html请求的时间 计算白屏时间

注意performance仅计算白屏时间比较准确

白屏时间(就是网页显示到第一个字符得时候)

首屏时间(整个页面的dom渲染的处于比较稳定的一个阶段),DocumentContentLoaded在DOM树加载完之后立刻触发,但图片等静态资源都没有请求,所以它不能用来计算 首屏时间

注意:onload和DocumentContentLoaded的区别

主要区别:
DocumentContentLoaded在DOM树加载完之后立刻触发,DOM树加载完成之后,继续加载图片等外部文件,加载完成之后,onload事件触发。

https://blog.csdn.net/weixin_43912756/article/details/109025226

注意:首屏时间计算使用MutationObserver

MutationObserver 要 监听层级深一点,监听body,然后根据层次变换,计算出一个变化最大的(比如回调函数中计时)

然后得到一个趋于稳定的时间点即可(变动大,然后都变动都小)

node不太适合做一些计算太大的工作,因为是单线程渲染线程和js线程其实是要共用的,一旦被某一个占了,会导致另一个一直都不能运行,会造成卡顿,不能运行等问题

webwork可以进行一些计算,但它有一些限制不能操作dom,因为两个线程同时操作dom会造成竞争,所以webwork等于开辟了一个新的线程(因为不能操作线程)

这样在计算比较大的时候就能新开个webwork,然后算出结果后,用post message拿到数据,在渲染到视图上,这样就不会造成浏览器卡顿

注意:webwork的报错会影响到主线程吗?不会

webwork会提供一个worker.onError的事件,那里应该能捕获到

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值