Skip to content

getPerformance

获取页面性能指标数据,包括 DNS 解析、TCP 连接、资源加载等各项性能指标。

API

getPerformance

Return

参数说明类型
BasicType | undefined性能指标对象BasicType | undefined

BasicType

属性说明类型
dnsSearchDNS 解析耗时(毫秒)number
tcpConnectTCP 连接耗时(毫秒)number
sslConnectSSL 安全连接耗时(毫秒)number
requestTTFB 网络请求耗时(毫秒)number
response数据传输耗时(毫秒)number
parseDomTreeDOM 解析耗时(毫秒)number
resource资源加载耗时(毫秒)number
domReadyDOM Ready 时间(毫秒)number
httpHeadHTTP 头部大小(字节)number
interactive首次可交互时间(毫秒)number
complete页面完全加载时间(毫秒)number
redirect重定向次数number
redirectTime重定向耗时(毫秒)number
duration资源请求总耗时(毫秒)number
fp首次绘制时间(白屏时间,毫秒)number | undefined
fcp首次内容绘制时间(首屏结束时间,毫秒)number | undefined

Parameters

无参数

Example

基础用法

js
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');
}

性能监控

js
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,
    });
  }
});

性能分析

js
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');
}

注意事项

  1. 浏览器支持:需要浏览器支持 Performance API,现代浏览器都支持。

  2. 服务端环境:在服务端环境(无 window 对象)时返回 undefined

  3. 时机:建议在页面加载完成后(load 事件)调用,以获得完整的性能数据。

  4. 数据单位:所有时间单位为毫秒,大小单位为字节。

  5. 用途:常用于性能监控、性能分析、性能优化等场景。

Released under the MIT License.