PerformanceServerTiming

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Contexte sécurisé: Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'interface PerformanceServerTiming présente des métriques de serveur qui sont envoyées avec la réponse dans l'en-tête Server-Timing dans l'en-tête HTTP.

Cette interface est limitée à la même origine, mais vous pouvez utiliser l'en-tête Timing-Allow-Origin pour spécifier les domaines qui sont autorisés à accéder aux paramètres du serveur. Notez que cette interface n'est disponible que dans des contextes sécurisés (HTTPS) dans certains navigateurs.

Note : Cette fonctionnalité est disponible via les Web Workers.

Propriétés

PerformanceServerTiming.descriptionLecture seule

Une chaîne de caractères DOMString décrivant la métrique spécifiée par le serveur, ou une chaîne vide.

PerformanceServerTiming.durationLecture seule

Un double qui contient la durée de la métrique spécifiée par le serveur, ou la valeur 0.0.

PerformanceServerTiming.nameLecture seule

Une chaîne de caractères DOMString avec le nom de la métrique spécifiée par le serveur.

Méthodes

PerformanceServerTiming.toJSON()

Retourne une chaîne de caractères DOMString qui est la représentation JSON de l'objet PerformanceServerTiming.

Exemple

Étant donné un serveur qui envoie l'en-tête Server-Timing, par exemple un serveur node.js comme celui-ci :

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);

Les entrées PerformanceServerTiming sont désormais observables depuis JavaScript via la propriété PerformanceResourceTiming.serverTiming :

js
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: ""}

Spécifications

Specification
Server Timing
# the-performanceservertiming-interface

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi