2022-09-20 14:24:27
利用Performance API进行前端性能监控与瓶颈分析,可通过以下四个核心模块实现,结合具体指标与代码示例,系统化定位性能问题。
1. Navigation Timing:分析页面加载全流程总加载时间:loadEventEnd - fetchStart(页面完全加载耗时)。
TTFB:responseStart - requestStart(服务器响应延迟)。
DOM构建效率:domContentLoadedEventEnd - responseEnd(DOM解析与脚本执行耗时)。
获取资源列表:performance.getEntriesByType('resource')。
排序分析:按duration或responseStart排序,找出最耗时资源。
网络阶段分解:
TCP连接耗时:connectEnd - connectStart。
SSL握手耗时:secureConnectionStart ? connectEnd - secureConnectionStart : 0。
服务器响应时间:responseStart - requestStart。
FP:performance.getEntriesByName('first-paint')[0].startTime。
FCP:performance.getEntriesByName('first-contentful-paint')[0].startTime。
标记开始/结束:performance.mark('api-call-start');await fetchData(); // 模拟API调用performance.mark('api-call-end');
计算耗时:performance.measure('api-call-duration', 'api-call-start', 'api-call-end');const measure = performance.getEntriesByName('api-call-duration')[0];console.log('API调用耗时:', measure.duration);
首屏优化:减少关键资源体积,延迟非首屏资源加载。
资源优化:压缩图片、合并脚本、使用CDN加速。
逻辑优化:拆分长任务(如requestIdleCallback),减少主线程阻塞。
通过以上方法,开发者可系统化监控前端性能,精准定位瓶颈,并基于数据持续优化用户体验。