讲师中心 微信公众号
AI工具推荐 视频效率加速

JavaScript性能监控_PerformanceAPI

酷明姑娘_3180

酷明姑娘_3180

发布时间:2025-11-30 19:29:02

|

517人浏览过

|

来源于php中文网

原创

Performance API通过高精度时间戳提供页面加载、资源请求等性能数据。1. 使用performance.now()获取精确时间;2. 用mark和measure测量自定义逻辑耗时;3. 通过navigation条目计算DNS、TCP、白屏等关键指标;4. 利用PerformanceObserver监听动态资源加载。结合上报机制可构建完整前端监控体系,持续优化用户体验。

javascript性能监控_performanceapi

前端性能监控是优化用户体验的关键环节,JavaScript中的Performance API为开发者提供了精确测量应用性能的能力。它基于高精度时间戳,能帮助我们获取页面加载、资源请求、脚本执行等关键阶段的耗时信息。

Performance API 核心功能

Performance API 是浏览器内置的接口,位于 window.performance 对象下,主要包含以下几个核心部分:

  • performance.now():返回自页面加载以来的高精度时间(毫秒),比 Date.now() 更精确,不受系统时钟调整影响。
  • performance.timing:提供页面加载各个阶段的时间戳(已废弃,推荐使用 Navigation Timing Level 2)。
  • performance.getEntries():获取所有已记录的性能条目,包括资源加载、Paint、Frame 等。
  • performance.mark() 和 performance.measure():用于自定义打点和测量时间段。

使用 mark 和 measure 进行自定义性能测量

在复杂应用中,我们常需要测量某段逻辑的执行时间,比如接口响应、组件渲染等。利用 mark 和 measure 可轻松实现:

// 打标记
performance.mark('start-data-fetch');
<p>fetch('/api/data')
.then(res => res.json())
.then(data => {
performance.mark('end-data-fetch');
// 记录耗时
performance.measure('data-fetch-time', 'start-data-fetch', 'end-data-fetch');
});</p>

之后可通过 performance.getEntriesByType('measure') 获取测量结果:

立即学习“Java免费学习笔记(深入)”;

OpenJDK 24 Windows x64
OpenJDK 24 Windows x64

OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。

下载
const measures = performance.getEntriesByType('measure');
console.log(measures); // [{ name: "data-fetch-time", duration: 120.5, ... }]

监控页面加载性能

利用 navigationStart 和 loadEventEnd 等时间点,可以计算关键性能指标:

const perfData = performance.getEntriesByType("navigation")[0];
console.log(`DNS查询耗时: ${perfData.domainLookupEnd - perfData.domainLookupStart}`);
console.log(`TCP连接耗时: ${perfData.connectEnd - perfData.connectStart}`);
console.log(`白屏时间: ${perfData.responseStart - perfData.navigationStart}`);
console.log(`DOM渲染完成: ${perfData.domContentLoadedEventEnd - perfData.navigationStart}`);
console.log(`页面完全加载: ${perfData.loadEventEnd - perfData.navigationStart}`);

结合 PerformanceObserver 监听动态资源

对于异步加载的资源(如图片、脚本),可使用 PerformanceObserver 实时监听:

const observer = new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    console.log(`${entry.name} 加载耗时: ${entry.duration}`);
    // 可上报到服务器
  }
});
// 观察资源加载
observer.observe({ entryTypes: ['resource'] });

这种方式适用于懒加载图片、动态 import 等场景,能更全面地掌握运行时性能表现。

基本上就这些。Performance API 提供了从页面加载到运行时测量的完整能力,合理使用可以帮助我们定位瓶颈、优化体验,并建立可持续的前端监控体系。不复杂但容易忽略细节,建议结合上报机制长期跟踪。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3148

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

4869

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3789

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

446

2026.01.19

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

20

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

20

2026.10.16

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

0

2026.10.16

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

20

2026.10.16

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

20

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.2万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn