首页 > 其他分享 >【性能监控】如何有效监测网页静态资源大小?

【性能监控】如何有效监测网页静态资源大小?

时间:2024-04-24 15:33:25浏览次数:22  
标签:resource name 静态 监控 entry 网页 页面 资源 加载

前言

作为前端人员肯定经常遇到这样的场景:需求刚上线,产品拿着手机来找你,为什么页面打开这么慢呀,心想自己开发的时候也有注意性能问题呀,不可能会这么夸张。那没办法只能排查下是哪一块影响了页面的整体性能,打开浏览器控制台一看,页面上的这些配图每张都非常大,心想这些配图都这么大,页面怎么快,那么我们有没有办法监测页面上的这些静态资源大小,从而避免这种情况的发生。

Performance

Performance 接口可以获取到当前页面中与性能相关的信息。

该对象提供许多属性及方法可以用来测量页面性能,这里介绍几个用来获取PerformanceEntry的方法:

getEntries

该方法获取一组当前页面已经加载的资源PerformanceEntry对象。接收一个可选的参数options进行过滤,options支持的属性有nameentryTypeinitiatorType

const entries = window.performance.getEntries();

getEntriesByName

该方法返回一个给定名称和 name 和 type 属性的PerformanceEntry对象数组,name的取值对应到资源数据中的name字段,type取值对应到资源数据中的entryType字段。

const entries = window.performance.getEntriesByName(name, type);

getEntriesByType

该方法返回当前存在于给定类型的性能时间线中的对象PerformanceEntry对象数组。type取值对应到资源数据中的entryType字段。

const entries = window.performance.getEntriesByType(type);

尝试获取静态资源数据

使用getEntriesByType获取指定类型的性能数据,performance entryType中有一个值为resource,用来获取文档中资源的计时信息。该类型包括有:scriptlinkimgcssxmlhttprequestbeaconfetchother等。

const resource = performance.getEntriesByType('resource')
console.log('resource', resource)

这样可以获取到非常多关于资源加载的数据:

为了方便查看,我们来稍微处理下数据

const resourceList = []
const resource = performance.getEntriesByType('resource')
console.log('resource', resource)
resource.forEach((item) => {
  resourceList.push({
    type: item.initiatorType, // 资源类型
    name: item.name, // 资源名称
    loadTime: `${(item.duration / 1000).toFixed(3)}s`, // 资源加载时间
    size: `${(item.transferSize / 1024).toFixed(0)}kb`, // 资源大小
  })
})

这样对于每个资源的类型、名称、加载时长以及大小,都非常清晰

但是有些资源的大小为什么会是0呢?以及还有很多页面上的资源貌似没有统计到,这是为啥呢?

标签:resource,name,静态,监控,entry,网页,页面,资源,加载
From: https://www.cnblogs.com/songyao666/p/18155567

相关文章

  • 视频监控/视频集中存储/云存储EasyCVR视频汇聚平台如何切换主子码流?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流,视频画面1、4、9、16个可选,支持自定义视频轮播。EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家......
  • 【问题处理】蓝鲸监控-数据断点解决
    本文来自腾讯蓝鲸智云社区用户:fadewalk在问答社区看到有小伙伴在落地蓝鲸的过程中出现监控平台的grafana面板数据断点问题,往往出现这种问题,都比较的头疼。如果将CMDB(配置管理数据库)比作运维的基石,那么监控可以比作运维的"眼睛"或"感知器"。监控在运维中起着至关重要的作用,类似......
  • 聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
    前言Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。很久之前写过一篇文章java应用线上诊断神器......
  • Dell 服务器esxi下安装OMSA监控
    适用于Windows的DellOpenManageServerAdministrator受管节点,v11.0.0.0esxi安装zip或vib 方法一esxi安装zip [root@ESXI:/vmfs/volumes/621641d5-dbe627f4-8462-f48e38c0a278] esxclisoftwarecomponentapply-d/vmfs/volumes/DATA/OM-SrvAdmin-Dell-Web-11.......
  • C++八股之函数重载与重写-静态多态与动态多态
    重载:是指在同一作用域中允许存在多个同名函数,⽽这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。重载与类无关,重载实现编译时多态,属于静态绑定。重写:指⼦类新定义⽗类的函数的做法。如果重写的函数在父类中是虚函数,那么能够实现动态多态。如果在父类中没......
  • python监控MongoDB服务进程,故障钉钉告警
     服务器1xx.168.8x.77#!/usr/bin/python#!_*_coding:utf-8_*_importosimportsysimporttimemongo_ip='192.168.xx.77'ports=['x001','x002']defport(ip,port):  response=os.popen("tcping %s%s|grepopen|awk-F'&......
  • pyhon脚本监控远程服务器存活情况,异常发送钉钉告警
    #!/usr/bin/python#!_*_coding:utf-8_*_importosimporttimefromcollectionsimportCounterfromdatetimeimportdatetimehost='localhost'ips=['192.168.xx.70','192.168.xx.83','172.16.xx.107']defping(ip):  #respo......
  • Django不显示CSS的效果(基于Django模板的静态资源配置问题)
    在搞毕设过程中,习惯起见我直接在网上找了现成的前端设计页面,如图:这种前端项目的结构一般是一个login.html、一个style.css、一个背景图片即可搞定的,直接点击html,浏览器中打开的就是上图所示的界面效果。但是:当我把前端所有文件扔进DjangoApp的templates文件夹后,运行项目的效果......
  • Algorius Net Viewer 2024.2.1 (Windows) - 网络可视化、管理、监控和清点
    AlgoriusNetViewer2024.2.1(Windows)-网络可视化、管理、监控和清点Comprehensivesoftwareproductforvisualizing,administering,monitoring,andinventoryingcomputersnetworkofanylevel请访问原文链接:AlgoriusNetViewer2024.2.1(Windows)-网络可视化......
  • PT Application Inspector 4.5 (Linux) - 静态、动态和交互式应用程序安全测试
    PTApplicationInspector4.5(Linux)-静态、动态和交互式应用程序安全测试唯一一款提供高质量分析和便捷工具以自动确认漏洞的源代码分析器请访问原文链接:PTApplicationInspector4.5(Linux)-静态、动态和交互式应用程序安全测试,查看最新版。原创作品,转载请保留出处。......