性能检测埋点方案选择

发布时间:2026/9/3 2:36:24

性能检测埋点方案选择
✅一、交给 web‑vitals不要自己手写 PerformanceObserver库内部已经封装好PerformanceObserver处理了 buffered、SPA 软导航、BFCache、多次候选值、浏览器兼容性RUM 采集直接用GitHubLCP 最大内容绘制INP 交互到下一次绘制新版核心指标替代 FIDCLS 累积布局偏移FCP 首次内容绘制TTFB 首字节时间import {onLCP,onINP,onCLS,onFCP,onTTFB} from web‑vitals onLCP(上报函数) onINP(上报函数) onCLS(上报函数) onFCP(上报函数) onTTFB(上报函数)底层依然是 Performance API只是复杂规则由谷歌维护业务埋点不要重复造轮子。✅二、必须自己手写原生 Performance APIweb‑vitals 不提供1导航耗时 navigationDNS、TCP、TLS、DOMContentLoaded、load 完整时间线performance.getEntriesByType(navigation)window.addEventListener(load, () { const navEntries performance.getEntriesByType(navigation); const nav navEntries[0]; console.log(DNS耗时, nav.domainLookupEnd - nav.domainLookupStart); console.log(TCP握手, nav.connectEnd - nav.connectStart); console.log(DOMContentLoaded, nav.domContentLoadedEventEnd); console.log(load完成, nav.loadEventEnd); })2资源加载 timingjs/css/img/font各个静态资源下载、解析耗时PerformanceObserver typeresourceconst resObserver new PerformanceObserver((list) { list.getEntries().forEach(entry { console.log(资源地址, entry.name); console.log(下载耗时, entry.responseEnd - entry.startTime); }) }) resObserver.observe({type:resource,buffered:true})3长任务 LongTask / LoAF 长动画帧主线程阻塞定位卡顿根源分析 TBT 总阻塞时长PerformanceObserver typelongtaskconst longTaskObserver new PerformanceObserver((list) { list.getEntries().forEach(entry { console.log(长任务阻塞时长(ms), entry.duration); }) }) longTaskObserver.observe({type:longtask,buffered:true})4自定义打点SPA 路由、接口、组件挂载、自定义首屏performance.mark()/performance.measure()比如 Vue/React 路由切换耗时、接口耗时、自定义首屏完成时间web‑vitals 管不了业务自定义节点。//开始打点 performance.mark(route-start) setTimeout((){ //结束打点计算间隔 performance.mark(route-end) performance.measure(route-cost,route-start,route-end) const measureList performance.getEntriesByName(route-cost) console.log(路由耗时ms,measureList[0].duration) //清理避免内存堆积 performance.clearMarks(); performance.clearMeasures(); },800)5TTI、TBT浏览器没有直接原生条目web‑vitals 也不输出 需要收集长任务、网络空闲窗口自己算法算出实验室指标线上 RUM 很少采集。6ElementTiming 自定义元素计时指定某个 DOM广告、模块渲染耗时html 增加elementtiming属性div elementtimingad-block广告模块/divJS 采集const eleObserver new PerformanceObserver(list{ list.getEntries().forEach(e{ console.log(指定DOM渲染完成时间,e.renderTime) }) }) eleObserver.observe({type:element,buffered:true})✅三、一句话选型口诀用户体验核心 5 大指标LCP/INP/CLS/FCP/TTFB→ web‑vitals资源、长任务、导航细节、业务自定义打点、SPA 路由耗时 → 原生 PerformanceObserver /markmeasureTTI/TBT 属于实验室指标线上一般不采集✅四、面试补充坑点web‑vitals 只能拿到标准体验指标不能定位阻塞的 JS 文件、图片资源排查问题依然要原生资源 / 长任务监控web‑vitals 不支持自定义 DOM 计时业务首屏、路由切换埋点必须自己 mark不要自己手写 LCP/CLS/INP 采集实现规则复杂容易不准线上 RUM 优先库。

相关新闻

互动叙事项目部署指南:从环境配置到自动化测试全流程

互动叙事项目部署指南:从环境配置到自动化测试全流程

2026/9/3 2:36:24

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

基于Qt Graphics View的故障树绘图工具开发实战

基于Qt Graphics View的故障树绘图工具开发实战

2026/9/3 2:36:24

简介:这份基于Qt的故障树分析(FTA)工具,面向系统安全与可靠性工程场景,利用QGraphicsView/QGraphicsScene实现了带交互画布的可视化建模界面,开发者可直接拖拽事件节点与逻辑门搭建因果关系,适合…

三相方波逆变电路:从基础原理到MATLAB仿真实践

三相方波逆变电路:从基础原理到MATLAB仿真实践

2026/9/3 2:26:24

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

想用AI Agent?先看这3步,小白也能做出可控工作流(收藏)

想用AI Agent?先看这3步,小白也能做出可控工作流(收藏)

2026/9/3 5:06:35

搭建AI Agent的起点不是平台和插件,而是判断任务是否需要根据上下文选择下一步。文章提出“判断—缩小—设闸门”三步法:首先判断任务是否需要AI判断,其次缩小任务范围做最小闭环,最后设闸门控制权限和停止条件。新手应从内部任务…

基于RX5808与RTC6705的5.8G双接收图传方案全解析

基于RX5808与RTC6705的5.8G双接收图传方案全解析

2026/9/3 5:06:35

简介:本资源是面向嵌入式硬件工程师与无人机图传开发者的一站式RX5808 5.8G双接收模块开发套件,聚焦STM32/ARM平台下的无线视频接收系统设计与调试,解决双天线分集接收、频道切换、时钟同步及固件定制等核心工程问题。压缩包含426个文件&…

舵机控制实战:从PWM原理到多舵机平滑运动方案

舵机控制实战:从PWM原理到多舵机平滑运动方案

2026/9/3 5:06:35

最近在玩舵机控制的朋友们,可能都遇到过这样的问题:代码写了一大堆,PWM信号调来调去,舵机要么抖得厉害,要么响应慢半拍,想做个平滑运动或者多舵机协同更是头疼。如果你还在用原始的analogWrite或者手动计算…

负载调制平衡放大器(LMBA)工程设计全解析

负载调制平衡放大器(LMBA)工程设计全解析

2026/9/3 5:06:35

简介:本资源是一份面向射频微波工程师与高年级研究生的LMBA(负载调制平衡放大器)完整ADS仿真工程包,聚焦经典架构复现与实操落地,解决新型高效宽带功率放大器设计中理论难转化、仿真难复现的痛点。压缩包含757个文件&a…

工业大模型进阶指南:从对话式助手到群体式协同,小白也能轻松掌握(收藏版)

工业大模型进阶指南:从对话式助手到群体式协同,小白也能轻松掌握(收藏版)

2026/9/3 5:06:35

本文阐述了工业AI从对话式助手向自主式执行及群体式协同的演进路径。初期,工业智能体通过自然语言理解连接分散的工业知识与数据,实现业务查询与辅助决策;中期,智能体具备任务规划、工具调用和执行反馈能力,自主完成生…

基于Qt与C++的校园商铺进销存系统开发实战

基于Qt与C++的校园商铺进销存系统开发实战

2026/9/3 4:56:35

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

远程协作的工作台整理

远程协作的工作台整理

2026/9/2 6:21:32

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/2 6:21:32

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…