PerformanceServerTiming
Note: This feature is available in Web Workers
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The PerformanceServerTiming
interface surfaces server metrics that are sent with the response in the Server-Timing
HTTP header.
This interface is restricted to the same origin, but you can use the Timing-Allow-Origin
header to specify the domains that are allowed to access the server metrics. Note that this interface is only available in secure contexts (HTTPS) in some browsers.
Properties
-
PerformanceServerTiming.description
Read only -
A
DOMString
value of the server-specified metric description, or an empty string. -
PerformanceServerTiming.duration
Read only -
A double that contains the server-specified metric duration, or value
0.0
. -
PerformanceServerTiming.name
Read only -
A
DOMString
value of the server-specified metric name.
Methods
PerformanceServerTiming.toJSON()
-
Returns a
DOMString
that is the JSON representation of thePerformanceServerTiming
object.
Example
Given a server that sends the Server-Timing
header, for example a node.js server like this:
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);
The PerformanceServerTiming
entries are now observable from JavaScript via the PerformanceResourceTiming.serverTiming
property:
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: ""}
Specifications
Specification |
---|
Server Timing # the-performanceservertiming-interface |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
PerformanceServerTiming |
65 |
79 |
61 |
No |
52 |
No |
65 |
65 |
61 |
47 |
No |
9.0 |
description |
65 |
79 |
61 |
No |
52 |
No |
65 |
65 |
61 |
47 |
No |
9.0 |
duration |
65 |
79 |
61 |
No |
52 |
No |
65 |
65 |
61 |
47 |
No |
9.0 |
name |
65 |
79 |
61 |
No |
52 |
No |
65 |
65 |
61 |
47 |
No |
9.0 |
toJSON |
65 |
79 |
61 |
No |
52 |
No |
65 |
65 |
61 |
47 |
No |
9.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceServerTiming