--- title: PerformanceEntry slug: Web/API/PerformanceEntry tags: - API - Interface - Performance Timeline API - PerformanceEntry - Reference - Performance Web translation_of: Web/API/PerformanceEntry ---
{{APIRef("Performance Timeline API")}}

L'objet PerformanceEntry encapsule une seule mesure de performance qui fait partie de la chronologie de performance. Une entrée de performance peut être créée directement en faisant une marque ou une mesure (par exemple en appelant la méthode mark()) à un point explicite d'une application. Les entrées de performance sont également créées de manière indirecte, par exemple en chargeant une ressource (telle qu'une image).

Les instances PerformanceEntry auront toujours l'un des sous-types suivants :

{{AvailableInWorkers}}

Propriétés

PerformanceEntry.name {{readonlyInline}}
Une valeur qui précise davantage la valeur renvoyée par la propriété PerformanceEntry.entryType. La valeur des deux dépend du sous-type. Voir la page de la propriété pour les valeurs valides.
PerformanceEntry.entryType {{readonlyInline}}
Une chaîne de caractère DOMString représentant le type de mesure de performance comme, par exemple, "mark". Voir la page des propriétés pour les valeurs valides.
PerformanceEntry.startTime {{readonlyInline}}
Un objet DOMHighResTimeStamp représentant l'heure de départ de la mesure de performance.
PerformanceEntry.duration {{readonlyInline}}
Un objet DOMHighResTimeStamp représentant la valeur temporelle de la durée de l'événement de performance.

Méthodes

PerformanceEntry.toJSON()
Renvoie une représentation JSON de l'objet PerformanceEntry.

Exemple

L'exemple suivant vérifie toutes les propriétés PerformanceEntry pour voir si le navigateur les prend en charge et, le cas échéant, écrit leurs valeurs dans la console.

function print_PerformanceEntries() {
  // Utilise getEntries() pour obtenir une liste de toutes les entrées de performance.
  let p = performance.getEntries();
  for (let i = 0; i < p.length; i++) {
    console.log("PerformanceEntry[" + i + "]");
    print_PerformanceEntry(p[i]);
  }
}
function print_PerformanceEntry(perfEntry) {
  let properties = ["name",
                    "entryType",
                    "startTime",
                    "duration"];

  for (let i = 0; i < properties.length; i++) {
    // Vérifie chaque propriété
    let supported = properties[i] in perfEntry;
    if (supported) {
      let value = perfEntry[properties[i]];
      console.log("... " + properties[i] + " = " + value);
    } else {
      console.log("... " + properties[i] + " n'est PAS pris en charge");
    }
  }
}

Spécifications

Spécification Statut Commentaire
{{SpecName('Resource Timing 3')}} {{Spec2('Resource Timing 3')}}
{{SpecName('Resource Timing 2')}} {{Spec2('Resource Timing 2')}}
{{SpecName('Resource Timing')}} {{Spec2('Resource Timing')}} Ajoute l'interface PerformanceResourceTiming et la valeur resource pour entryType.
{{SpecName('Navigation Timing Level 2')}} {{Spec2('Navigation Timing Level 2')}}
{{SpecName('Navigation Timing')}} {{Spec2('Navigation Timing')}} Ajoute l'interface PerformanceNavigationTiming et la valeur navigation pour entryType.
{{SpecName('User Timing Level 2')}} {{Spec2('User Timing Level 2')}}
{{SpecName('User Timing')}} {{Spec2('User Timing')}} Ajoute les interfaces PerformanceMark et PerformanceMeasure ainsi que les valeurs mark et measure pour entryType.
{{SpecName('Frame Timing')}} {{Spec2('Frame Timing')}} Ajoute l'interface PerformanceFrameTiming et la valeur frame pour entryType.
{{SpecName('Performance Timeline Level 2', '#dom-performanceentry', 'PerformanceEntry')}} {{Spec2('Performance Timeline Level 2')}} Ajout de la méthode de sérialisation toJSON().
{{SpecName('Performance Timeline', '#dom-performanceentry', 'PerformanceEntry')}} {{Spec2('Performance Timeline')}} Définition initiale.

Compatibilité des navigateurs

{{Compat("api.PerformanceEntry")}}