Window Performance API 是一组浏览器提供的接口,用于收集和分析网页性能数据。它允许开发者精确地测量网页加载时间、资源加载时间、用户交互延迟等性能指标,从而优化用户体验。
performance.now()
const start = performance.now();
// 执行某个任务
const end = performance.now();
console.log(`执行时间: ${end - start} 毫秒`);
performance.mark()
performance.mark('start-task');
// 执行任务
performance.mark('end-task');
performance.measure()
performance.mark('start-task');
// 执行任务
performance.mark('end-task');
performance.measure('Task Duration', 'start-task', 'end-task');
performance.getEntriesByType()
const measures = performance.getEntriesByType('measure');
measures.forEach((measure) => {
console.log(`Name: ${measure.name}, Duration: ${measure.duration}`);
});
performance.getEntriesByName()
mark
和 measure
一起使用。const measure = performance.getEntriesByName('Task Duration')[0];
console.log(`Task Duration: ${measure.duration} ms`);
performance.clearMarks()
和 performance.clearMeasures()
performance.clearMarks('start-task');
performance.clearMarks('end-task');
performance.clearMeasures('Task Duration');
使用 Performance Timing API
来分析整个网页加载过程中的各个阶段,如 DNS 解析时间、TCP 连接时间、页面渲染时间等。performance.timing
对象提供了一个详细的时间戳列表。
const timing = performance.timing;
const pageLoadTime = timing.loadEventEnd - timing.navigationStart;
console.log(`页面加载时间: ${pageLoadTime} ms`);
通过 performance.getEntriesByType('resource')
可以获取页面中所有资源(如脚本、图片、CSS 等)的加载时间,从而找出哪些资源加载时间过长。
const resources = performance.getEntriesByType('resource');
resources.forEach((resource) => {
console.log(`Resource: ${resource.name}, Duration: ${resource.duration} ms`);
});
使用 performance.now()
和 performance.mark()
来测量用户操作(如按钮点击)与页面响应之间的时间差,从而优化页面的响应速度。
document.querySelector('button').addEventListener('click', () => {
performance.mark('button-click');
// 假设这里有一些操作
performance.mark('end-button-click');
performance.measure('Button Click Response Time', 'button-click', 'end-button-click');
const measure = performance.getEntriesByName('Button Click Response Time')[0];
console.log(`按钮点击响应时间: ${measure.duration} ms`);
});
performance
数据,你可以了解页面加载的瓶颈在哪里。例如,资源加载时间过长可能意味着需要引入资源压缩,或者采用懒加载策略。performance
API 来进行基准测试。例如,在优化代码前后,通过 performance.now()
来比较执行时间,从而衡量优化效果。const measurePerformance = (fn) => {
const start = performance.now();
fn();
const end = performance.now();
console.log(`执行时间: ${end - start} 毫秒`);
};
measurePerformance(() => {
// 被测代码
});
Window Performance API 提供了一整套全面的工具来帮助开发者测量和优化网页性能。通过有效地使用这些接口,开发者不仅可以了解用户在使用应用程序时的实际体验,还可以针对性的做出优化,提升整个应用的响应速度和稳定性。在实际项目中,合理地使用这些 API 并将它们集成到持续监控系统中,可以大大提高应用的质量和用户满意度。