当前位置: 首页 > news >正文

【前端】如何计算首屏及白屏时间

文章目录

    • 一、首屏时间
    • 二、白屏时间

一、首屏时间

白屏时间:页面渲染完所有内容的时间

  • 简单点就是在<body> 标签后写js代码计算,但是不是很准确
<head><title>白屏时间</title>
</head>
<body></body>
<script type="text/javascript">
const time = Date.now() - performance.timing.navigationStart
console.log('首屏时间结束点:', time)
</script>
  • 还有一个思路就是利用 MutationObserver 监控DOM的变化,变化幅度最大一次时间的就是首屏时间
1. DOM的增加、修改、删除,会触发 MutationObserver
2. 每次 DOM 变化可以计算出一个相对时间(time)DOM 变化的分数,并存入一个 observerData 数组中
3. 而后处理 observerData 数组,计算 DOM 变化时分数的差值,取 DOM 分数变化最大的时间点作为首屏时间的取值点
4. 因为首屏并不是所有DOM都渲染,所以不能取最后一项DOM加载完的时间

二、白屏时间

白屏时间:页面开始显示内容的时间

  • 一般浏览器开始渲染 <body> 标签或者解析完 <head> 标签,就是页面白屏结束的时间点。
<head><title>白屏时间</title>
</head>
<script type="text/javascript">
const time = Date.now() - performance.timing.navigationStart
console.log('白屏时间结束点:', time)
</script>
  • 如果不支持performance,可以这样做
<head><title>白屏时间</title><script type="text/javascript">window.start = Date.now();console.log('白屏时间开始点:', window.start)</script>
</head>
<script type="text/javascript">
const time = Date.now() - window.start
console.log('白屏时间结束点:', time)
</script>
http://www.lryc.cn/news/316967.html

相关文章:

  • 重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类
  • FileZillaClient连接被拒绝,无法连接
  • 每日一面——成员初始化列表、移动构造和拷贝构造
  • OPC UA 服务器的Web访问
  • docker 子网
  • QT使用RabbitMQ
  • 什么是R语言?什么是R包?-R语言001
  • Java17 --- springCloud之LoadBalancer
  • Mac(含M1) 使用 brew 安装nvm
  • 优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】
  • <2024最新>ChatGPT逆向教程
  • C#编程技巧--2
  • 设计模式 代理模式
  • 关于学习时间
  • Github:Your browser did something unexpected. Please try again.
  • Django性能优化
  • 全网最详细Docker命令(分类总结)
  • 运维自动化之ANSIBLE
  • 算法训练day42leetcode01背包问题 416. 分割等和子集
  • VulnHub - DarkHole
  • 前端学习笔记 | WebAPIs(DOM+BOM)
  • 简易内存池(100%用例)C卷(JavaPythonC++Node.jsC语言)
  • 【算法与数据结构】队列的实现详解
  • GPT-3后的下一步:大型语言模型的未来方向
  • 基于机器学习的曲面拟合方法
  • 【C++从练气到飞升】03---构造函数和析构函数
  • mybatis转义字符
  • vue3 实现一个tab切换组件
  • JSONObject在Android Main方法中无法实例化问题
  • 京津冀协同发展:北京·光子1号金融算力中心——智能科技新高地