getPerformance
获取页面性能指标数据,包括 DNS 解析、TCP 连接、资源加载等各项性能指标。
API
getPerformance
Return
| 参数 | 说明 | 类型 |
|---|---|---|
BasicType | undefined |
性能指标对象 | BasicType | undefined |
BasicType
| 属性 | 说明 | 类型 |
|---|---|---|
dnsSearch |
DNS 解析耗时(毫秒) | number |
tcpConnect |
TCP 连接耗时(毫秒) | number |
sslConnect |
SSL 安全连接耗时(毫秒) | number |
request |
TTFB 网络请求耗时(毫秒) | number |
response |
数据传输耗时(毫秒) | number |
parseDomTree |
DOM 解析耗时(毫秒) | number |
resource |
资源加载耗时(毫秒) | number |
domReady |
DOM Ready 时间(毫秒) | number |
httpHead |
HTTP 头部大小(字节) | number |
interactive |
首次可交互时间(毫秒) | number |
complete |
页面完全加载时间(毫秒) | number |
redirect |
重定向次数 | number |
redirectTime |
重定向耗时(毫秒) | number |
duration |
资源请求总耗时(毫秒) | number |
fp |
首次绘制时间(白屏时间,毫秒) | number | undefined |
fcp |
首次内容绘制时间(首屏结束时间,毫秒) | number | undefined |
Parameters
无参数
Example
基础用法
import { getPerformance } from 'ranuts';
const perf = getPerformance();
if (perf) {
console.log('DNS 解析耗时:', perf.dnsSearch, 'ms');
console.log('TCP 连接耗时:', perf.tcpConnect, 'ms');
console.log('首屏时间:', perf.fcp, 'ms');
}性能监控
import { getPerformance } from 'ranuts';
window.addEventListener('load', () => {
const perf = getPerformance();
if (perf) {
// 发送性能数据到服务器
sendToServer({
dns: perf.dnsSearch,
tcp: perf.tcpConnect,
request: perf.request,
fcp: perf.fcp,
});
}
});性能分析
import { getPerformance } from 'ranuts';
function analyzePerformance() {
const perf = getPerformance();
if (!perf) return;
console.log('=== 性能分析 ===');
console.log('DNS 解析:', perf.dnsSearch, 'ms');
console.log('TCP 连接:', perf.tcpConnect, 'ms');
console.log('SSL 握手:', perf.sslConnect, 'ms');
console.log('请求响应:', perf.request, 'ms');
console.log('数据传输:', perf.response, 'ms');
console.log('DOM 解析:', perf.parseDomTree, 'ms');
console.log('资源加载:', perf.resource, 'ms');
console.log('首次绘制:', perf.fp, 'ms');
console.log('首次内容绘制:', perf.fcp, 'ms');
}注意事项
浏览器支持:需要浏览器支持 Performance API,现代浏览器都支持。
服务端环境:在服务端环境(无
window对象)时返回undefined。时机:建议在页面加载完成后(
load事件)调用,以获得完整的性能数据。数据单位:所有时间单位为毫秒,大小单位为字节。
用途:常用于性能监控、性能分析、性能优化等场景。