PerformanceEntry.duration
=========================

La propriété **`duration`** renvoie un `timestamp` qui correspond à la durée de l'entrée de performance.

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

La valeur retournée par cette propriété dépend du type de l'entrée de performance :

* « `frame` » - retourne un `timestamp` indiquant la différence entre le `startTime` de deux *frames* successives.
* « `mark` » - retourne "`0`" (une marque n'a pas de durée).
* « `measure` » - retourne le `timestamp` qui correspond à la durée de la mesure.
* « `navigation` » - retourne le `timestamp` qui est respectivement la différence entre les propriétés `PerformanceNavigationTiming.loadEventEnd` et `PerformanceEntry.startTime`.
* « `resource` » - renvoie la différence entre les deux `timestamps` `responseEnd` (le moment de la fin de la réponse) de la ressource et `startTime` (le point de départ).

Cette propriété est en Lecture seule .

Syntaxe
-------


```js
entry.duration;
```

### Valeur de retour

Un objet `DOMHighResTimeStamp` représentant la durée de l'entrée de performance. Si le concept de durée ne s'applique pas à une mesure de performance particulière, le navigateur peut choisir de renvoyer une durée de 0.

**Note :** si l'entrée de performance a un `entryType` "`resource`" (c'est-à-dire que l'entrée est un objet `PerformanceResourceTiming`), cette propriété renvoie la différence entre les `timestamps` `PerformanceEntry.responseEnd` et `PerformanceEntry.startTime`.

Exemple
-------

L'exemple suivant montre l'utilisation de la propriété `duration`.


```js
function run\_PerformanceEntry() {
  console.log("Support de PerformanceEntry ...");

  if (performance.mark === undefined) {
    console.log("... performance.mark N'est pas pris en charge");
    return;
  }

  // Créer quelques entrées de performance via la méthode mark()
  performance.mark("Begin");
  do\_work(50000);
  performance.mark("End");

  // Utilise getEntries() pour itérer à travers chaque entrée.
  let p = performance.getEntries();
  for (let i = 0; i < p.length; i++) {
    console.log("Entry[" + i + "]");
    check\_PerformanceEntry(p[i]);
  }
}
function check\_PerformanceEntry(obj) {
  let properties = ["name", "entryType", "startTime", "duration"];
  let methods = ["toJSON"];

  for (let i = 0; i < properties.length; i++) {
    // check each property
    let supported = properties[i] in obj;
    if (supported)
      console.log("..." + properties[i] + " = " + obj[properties[i]]);
    else console.log("..." + properties[i] + " = N'est pas pris en charge");
  }
  for (let i = 0; i < methods.length; i++) {
    // check each method
    let supported = typeof obj[methods[i]] == "function";
    if (supported) {
      let js = obj[methods[i]]();
      console.log("..." + methods[i] + "() = " + JSON.stringify(js));
    } else {
      console.log("..." + methods[i] + " = N'est pas pris en charge");
    }
  }
}
```

Spécifications
--------------

| Specification |
| --- |
| Performance Timeline # dom-performanceentry-duration |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.