首先获取关键性能指标,再通过Performance API采集数据。FP、FCP、LCP衡量渲染速度,FID反映响应延迟,TTFB评估网络性能,结合PerformanceObserver和navigation/paint类型数据实现精准监控与上报。
前端性能监控中,JavaScript的性能指标采集是关键一环。它帮助开发者了解页面加载、执行效率以及用户真实体验。核心目标是获取可量化的数据,定位瓶颈,优化用户体验。以下从关键性能指标和采集方法两个层面进行说明。
这些指标来自浏览器提供的 Performance API,尤其是 Navigation Timing API 和 Paint Timing API,能反映页面生命周期的重要节点。
利用 window.performance 对象可以获取高精度时间戳,结合事件监听实现自动采集。
以下是一个简化版的性能数据采集脚本:
// 获取绘制时间
const paintTimes = performance.getEntriesByType('paint');
paintTimes.forEach(entry => {
if (entry.name === 'first-contentful-paint') {
console.log('FCP:', entry.startTime);
}
});
// 使用 PerformanceObserver 监听 LCP
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
if (entry.entryType === 'largest-contentful-paint') {
console.log('LCP:', entry.startTime);
}
}
});
observer.observe({ entryTypes: ['largest-contentful-paint'] });
// 页面加载完成后上报数据
window.addEventListener('load', () => {
const perfData = performance.getEntriesByType('navigation')[0];
console.log('TTFB:', perfData.responseStart - perfData.fetchStart
);
console.log('DOM Ready:', perfData.domContentLoadedEventEnd - perfData.fetchStart);
console.log('Load:', perfData.loadEventEnd - perfData.fetchStart);
});
采集性能数据要兼顾准确性和对用户体验的影响。
基本上就这些。掌握这些指标和采集方式,就能构建基础的前端性能监控体系。