PerformanceServerTiming - 表示服务器的指标

注意: 此特性在 Web Worker 中可用。

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

PerformanceServerTiming 接口表示服务器的指标,这些指标随响应一起在 Server-Timing HTTP 标头中发送。

此接口被限制为具有相同的来源,但是您可以使用 Timing-Allow-Origin 标头来指定允许访问服务器指标的域名。请注意,此接口仅在某些浏览器中的安全上下文(HTTPS)中可用。

属性

PerformanceServerTiming.description 只读

一个 DOMString,表示服务器指定的指标描述,没有则为空字符串。

PerformanceServerTiming.duration 只读

一个 double,包含服务器指定的度量标准持续时间,没有则为 0.0

PerformanceServerTiming.name只读

一个 DOMString,表示服务器指定的度量标准名称。

方法

PerformanceServerTiming.toJSON()

返回一个 DOMString,它是 PerformanceServerTiming 对象的 JSON 表示形式。

实例

准备一个发送 Server-Timing 标头的服务器,例如,像这样的 node.js 服务器:

const http = require('http');

function requestHandler(request, response) {
  const headers = {
    'Server-Timing': `
      cache;desc="Cache Read";dur=23.2,
      db;dur=53,
      app;dur=47.2
    `.replace(/\n/g, '')
  };
  response.writeHead(200, headers);
  response.write('');
  return setTimeout(_ => {
   response.end();
 }, 1000)
};

http.createServer(requestHandler).listen(3000).on('error', console.error);

现在可以通过 PerformanceResourceTiming.serverTiming 属性从 JavaScript 中观察 PerformanceServerTiming 指标:

let entries = performance.getEntriesByType('resource');
console.log(entries[0].serverTiming);
// 0: PerformanceServerTiming {name: "cache", duration: 23.2, description: "Cache Read"}
// 1: PerformanceServerTiming {name: "db", duration: 53, description: ""}
// 2: PerformanceServerTiming {name: "app", duration: 47.2, description: ""}

规范

规范 状态 备注
Server Timing
PerformanceServerTiming 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持65≤7961 不支持52 未知
description65≤7961 不支持52 未知
duration65≤7961 不支持52 未知
name65≤7961 不支持52 未知
toJSON65≤7961 不支持52 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持6565 未知61 未知47 未知
description6565 未知61 未知47 未知
duration6565 未知61 未知47 未知
name6565 未知61 未知47 未知
toJSON6565 未知61 未知47 未知

相关链接