Performance Timeline API

L'API Performance Timeline définit des extensions de l'interface Performance pour prendre en charge les mesures de latence côté client dans les applications. Ces extensions fournissent des interfaces permettant de récupérer les paramètres de saisie des performances en fonction de critères de filtrage spécifiques. La norme comprend également des interfaces qui permettent à une application de définir des retours (« callbacks ») d'observateur des performances, qui sont notifiés lorsque des événements de performance spécifiques sont ajoutés à la chronologie des performances du navigateur.

Ce document fournit un aperçu des interfaces de la norme. Pour plus de détails sur les interfaces, voir les pages de référence et Utilisation de Performance Timeline.

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

Extensions de Performance

L'API Performance Timeline étend l'interface Performance avec trois méthodes qui fournissent différents mécanismes pour obtenir un ensemble d'enregistrements des performances (métriques), en fonction des critères de filtrage spécifiés. Ces méthodes sont les suivantes :

getEntries()
Renvoie toutes les entrées de performances enregistrées ou, éventuellement, les entrées basées sur les name, type de performance et/ou les initiatorType spécifiés. (tel qu'un élément HTML).
getEntriesByName()
Renvoie les entrées de performances enregistrées en fonction du name spécifié et éventuellement du type de performance.
getEntriesByType()
Renvoie les entrées de perfornances enregistrées en fonction des types de performances spécifiés.

L'interface PerformanceEntry

L'interface PerformanceEntry encapsule une unique entrée de performance, c'est-à-dire un point de donnée ou une métrique située sur la chronologie des performances. Cette interface possède quatre propriétés ; ces propriétés sont étendues (avec des contraintes supplémentaires) par d'autres interfaces (telles que PerformanceMark) :

name
Le nom de l'entrée de performance lorsque la métrique a été créée.
entryType
Le type de mesure de performance (par exemple, « mark »).
startTime
Un horodatage haute résolution représentant l'heure de départ de l'entrée de performance.
duration
Un horodatage haute résolution représentant la valeur temporelle de la durée de l'événement de performance (certains types d'entrée de performance n'ont pas de concept de durée et cette valeur est fixée à '0' pour ces types).

Cette interface comprend une méthode toJSON() qui renvoie la sérialisation de l'objet PerformanceEntry. La sérialisation varie selon le type de performance.

Observateurs des performances

Experimental

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Les interfaces d'observateurs de performance permettent à une application d'enregistrer un observateur pour des types d'événements de performance spécifiques. Lorsqu'un de ces types d'événements est enregistré, l'application est notifiée de l'événement via la fonction de rappel de l'observateur qui a été spécifiée lors de la création de l'observateur.

Lorsque la fonction de rappel de l'observateur (callback) est invoquée, les paramètres incluent une liste des entrées de l'observateur de performance qui contient uniquement des entrées de performance observées. C'est-à-dire que la liste contient uniquement des entrées pour les types d'événements qui ont été spécifiés lorsque la méthode observe() de l'observateur a été invoquée. L'interface PerformanceObserverEntryList possède les trois mêmes méthodes getEntries*() que l'interface Performance. Cependant, notez qu'il y a une différence clé avec ces méthodes ; les versions PerformanceObserverEntryList sont utilisées pour récupérer les entrées de performance observées dans le rappel de l'observateur.

Outre la méthode observe() de l'interface PerformanceObserver (qui sert à enregistrer les types d'entrées pour observer), l'interface PerformanceObserver possède également une méthode disconnect() qui empêche un observateur de recevoir d'autres événements.

Les observateurs de performance ont été ajoutés au Niveau 2 de la norme et n'ont pas été implémentés à grande échelle.

État de la mise en œuvre

Un résumé de l'état de mise en œuvre des interfaces est fourni ci-dessous, avec un lien vers des informations plus détaillées.

  • Les extensions de l'interface Performance : Comme le montre le tableau de Compatibilité des navigateurs de l'interface Performance, la plupart de ces interfaces sont largement prises en charge par les navigateurs de bureau et bénéficient d'un support moindre sur les appareils mobiles.
  • PerformanceEntry : Comme le montre le tableau de Compatibilité des navigateurs de l'interface PerformanceEntry, la plupart de ces interfaces sont largement prises en charge par les navigateurs de bureau et le sont moins sur les appareils mobiles.
  • PerformanceObserver This is an experimental API that should not be used in production code. : Comme le montre le tableau de Compatibilité des navigateurs de l'interface PerformanceObserver, cette interface n'est pas implémentée par les navigateurs.

Pour tester la prise en charge de ces interfaces par votre navigateur, vous pouvez exécuter l'application perf-api-support.

Voir aussi