使用window.performance分析web前端性能

performance支持多种类型的Timing

常见的Timing有以下几类:

1. 页面加载 Navigation timing

该对象能够帮助网站开发者检测真实用户数据(RUM),例如带宽、延迟或主页的整体页面加载时间。
用performance.timing可以取到到该对象。

这两个API非常有用,可以帮助我们获取页面的Domready时间、onload时间、白屏时间等,以及单个页面资源在从发送请求到获取到rsponse各阶段的性能参数。
使用这两个API时需要在页面完全加载完成之后才能使用,最简单的办法是在window.onload事件中读取各种数据,因为很多值必须在页面完全加载之后才能得出。

2. 资源加载 Resource Timing API

这个主要用来获取到单个静态资源(Js,CSS,图片,音频视频等等)从开始发出请求到获取响应之间各个阶段的Timing

通过performance.getEntries()可以获取所有静态资源的数组列表,点开后显示了,某一个请求的相关参数有name,type,时间等等。
此外还有,performance.getEntriesByName(),performance.getEntriesByType(),获取单个资源和某类型资源的加载时间

3. 内存使用情况 performance.memory

jsHeapSizeLimit: js堆内存大小限制

totalJSHeapSize: totalJSHeapSize表示当前js堆栈内存总大小

usedJSHeapSize: usedJSHeapSize表示所有被使用的js堆栈内存,usedJSHeapSize不能大于totalJSHeapSize,如果大于,有可能出现了内存泄漏。

4. 用户行为 performance.navigation 

(1)performance.navigation.type

该属性返回一个整数值,表示网页的加载来源,可能有以下4种情况:

0:网页通过点击链接、地址栏输入、表单提交、脚本操作等方式加载,相当于常数performance.navigation.TYPE_NAVIGATENEXT。

1:网页通过“重新加载”按钮或者location.reload()方法加载,相当于常数performance.navigation.TYPE_RELOAD。

2:网页通过“前进”或“后退”按钮加载,相当于常数performance.navigation.TYPE_BACK_FORWARD。

255:任何其他来源的加载,相当于常数performance.navigation.TYPE_UNDEFINED。

(2)performance.navigation.redirectCount

表示当前网页经过了多少次重定向跳转。

 

posted @   全玉  阅读(1380)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-05-13 重绘(repaints)与重排(reflows)
2017-05-13 autoprefixer小记
2017-05-13 二叉树的创建,插入,查找,清空和比较
2017-05-13 二叉树的最小高度,最大高度(深度)和宽度
2017-05-13 vue经验总结
点击右上角即可分享
微信分享提示