recursal/MDN huggingface dataset:
PerformanceServerTiming.duration
================================

La propriété en lecture seule **`duration`** retourne un double qui contient la durée de la métrique spécifiée par le serveur, ou la valeur `0,0`.

Syntaxe
-------


```js
serverTiming.duration;
```

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

| Specification |
| --- |
| Server Timing # dom-performanceservertiming-duration |

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

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

Voir aussi
----------

* `PerformanceServerTiming`
* `Server-Timing` (en-US)
PerformanceServerTiming.toJSON()
================================

La méthode **`toJSON()`** de l'interface `PerformanceServerTiming` retourne une chaîne de caractères `DOMString` qui est la représentation JSON de l'objet `PerformanceServerTiming`.

Syntaxe
-------


```js
let json = PerformanceServerTiming.toJSON();
```

### Paramètres

Aucun.

### Valeur de retour

`json`

Une chaîne de caractères JSON qui est la sérialisation de l'objet `PerformanceServerTiming`.

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

| Specification |
| --- |
| Server Timing # dom-performanceservertiming-tojson |

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

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

La propriété en lecture seule **`name`** retourne une valeur `DOMString` qui est le nom de la métrique spécifiée par le serveur.

Syntaxe
-------


```js
serverTiming.name;
```

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

| Specification |
| --- |
| Server Timing # dom-performanceservertiming-name |

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

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

Voir aussi
----------

* `PerformanceServerTiming`
* `Server-Timing` (en-US)
PerformanceServerTiming.description
===================================

La propriété en lecture seule **`description`** retourne une chaîne de caractères (`DOMString`) décrivant la métrique spécifiée par le serveur, ou une chaîne vide.

Syntaxe
-------


```js
serverTiming.description;
```

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

| Specification |
| --- |
| Server Timing # dom-performanceservertiming-description |

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

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

Voir aussi
----------

* `PerformanceServerTiming`
* `Server-Timing` (en-US)
complete
========

L'événement **complete** est déclenché lorsque le rendu d'un `OfflineAudioContext` (en-US) est terminé.

Informations générales
----------------------

Interface
`OfflineAudioCompletionEvent` (en-US)
Propagation

?

Annulable

?

Cible
`OfflineAudioContext` (en-US)
Action par défaut

Aucune

Propriétés
----------

| Property | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | The event target (the topmost target in the DOM tree). |
| `type` Lecture seule  | `DOMString` | The type of event. |
| `bubbles` Lecture seule  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Lecture seule  | `Boolean` | Whether the event is cancellable or not. |
| `renderedBuffer` Lecture seule  | `AudioBuffer` | The buffer containing the result of the processing of an `OfflineAudioContext` (en-US). |

Evénements liés
---------------

*Aucun.*

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

| Specification |
| --- |
| Web Audio API # OfflineAudioCompletionEvent |
| Web Audio API # dom-offlineaudiocontext-oncomplete |

Voir aussi
----------

* Web Audio API (en-US)
ShadowRoot.innerHTML
====================

La propriété **`innerHTML`**, rattachée à l'interface `ShadowRoot`, permet de définir ou de récupérer une référence à l'arbre DOM contenu dans la racine `ShadowRoot`.

Syntaxe
-------


```js
var domString = shadowRoot.innerHTML;
shadowRoot.innerHTML = domString;
```

### Valeur

Une chaîne de caractères `DOMString`.

Exemples
--------


```js
let customElem = document.querySelector("mon-element-shadow-dom");
let shadow = customElem.shadowRoot;

shadow.innerHTML = "<strong>Cet élément devrait être plus important !</strong>";
```

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

Cette propriété ne fait pas encore partie d'une spécification. Voir cette *issue* pour le projet de spécification.

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

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

**`delegatesFocus`** est une propriété en lecture seule, rattachée à l'interface `ShadowRoot` et qui renvoie un booléen indiquant si l'option `delegatesFocus` a été intialisée lors de l'attachement de la racine *shadow* (cf. `Element.attachShadow()`).

**Attention :** Cette fonctionnalité est expérimentale, non-standard et uniquement disponible dans Chrome.

Syntaxe
-------


```js
var df = shadowRoot.delegatesFocus;
```

### Valeur

Un booléen : `true` si la racine *shadow* délègue la gestion du focus et `false` sinon.

Exemples
--------


```js
let customElem = document.querySelector('mon-element-shadow-dom');
let shadow = customElem.shadowRoot;

  ...

// Est-ce que la racine gère la délégation du focus ?
let hostElem = shadow.delegatesFocus;
```

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

Cette fonctionnalité n'est actuellement décrite dans aucune spécification.

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

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

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Learn more
* See full compatibility
* Report feedback
La propriété **`host`** est une propriété en lecture seule, rattachée à l'interface `ShadowRoot` et qui représente une référence à l'élément du DOM auquel la racine `ShadowRoot` est attachée.

Syntaxe
-------


```js
var element = shadowRoot.host;
```

### Valeur

Un élément du DOM sous la forme d'un objet `Element`.

Exemples
--------


```js
let customElem = document.querySelector('mon-element-shadow-dom');
let shadow = customElem.shadowRoot;

  ...

// renvoie l'élément hôte
let hostElem = shadow.host;
```

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

| Specification |
| --- |
| DOM Standard # dom-shadowroot-host |

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

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

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Learn more
* See full compatibility
* Report feedback
La propriété **`mode`**, rattachée à l'interface `ShadowRoot`, indique son mode. Celui-ci peut valoir `open` ou `closed` et indique si les fonctionnalités internes de la racine sont accessibles en JavaScript.

Lorsque le mode d'une racine *shadow* vaut `closed`, les détails d'implémentation internes sont inaccessibles et inchangeables avec JavaScript (de la même façon que les détails du fonctionnement de l'élément `<video>` sont inaccessibles et inchangeables en JavaScript).

Syntaxe
-------


```js
var mode = shadowRoot.mode;
```

### Valeur

Une valeur définie via l'énumération `ShadowRootMode` : soit `open`, soit `closed`.

Exemples
--------


```js
let customElem = document.querySelector("mon-element-shadow-dom");
let shadow = customElem.shadowRoot;

// Une autre façon de vérifier si la racine est ouverte :
// on obtiendra null si elle est fermée
if (shadow) {
  // Si elle est ouverte, on ferme la racine pour
  // cacher ce qu'il y a à l'intérieur.
  shadow.mode = "closed";
}
```

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

| Specification |
| --- |
| DOM Standard # dom-shadowroot-mode |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
IDBCursor.continue()
====================

La méthode **`continue()`** de l'interface `IDBCursor` fait avancer le curseur jusqu'à la prochaine position qui corrrespond à une clé donnée si celle-ci est passée en paramètre, si aucune clé n'est indiquée, le curseur avancera à la position qui suit immédiatement la position actuelle (dans la direction de progression du curseur).

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

Syntaxe
-------


```js
curseur.continue(cléOptionnelle);
```

### Paramètres

`cléOptionnelle`

La clé sur laquelle se positionne le curseur.

### Exceptions

Cette méthode peut déclencher des exceptions `DOMException` de type :

| Exception | Description |
| --- | --- |
| `TransactionInactiveError` | La transaction de l'IDBCursor est inactive. |
| `DataError` | Le paramètre `*cléOptionnelle*` peut:* Être invalide.
* Être inférieur ou égal à la position de ce curseur et la direction
 du curseur `next` ou `nextunique`.
* Être supérieur ou égal à la position de ce curseur et la direction
 de ce curseur `prev` ou `prevunique`.
 |
| `InvalidStateError` | Le curseur est en itération ou il a itéré au-delà de la plage. |

Exemple
-------

Dans ce petit morceau de code, on fait une transaction, on récupère un magasin d'objet, puis on utilise un curseur afin d'itérer sur les enregistrements contenus dans le magasin. Il n'est pas nécessaire de sélectionner les données selon une clé, on peut simplement toutes les récupérer. On notera qu'à chaque itération de la boucle, on récupère les données correspondantes à l'enregistrement grâce au curseur sous la forme `curseur.value.toto`. Pour étudier un exemple de travail complet, voir notre exemple IDBCursor (voir l'exemple live).


```js
function afficheDonnee() {
  var transaction = db.transaction(["granListAlbum"], "readonly");
  var objectStore = transaction.objectStore("granListAlbum");

  objectStore.openCursor().onsuccess = function (event) {
    var curseur = event.target.result;
    if (curseur) {
      var listItem = document.createElement("li");
      listItem.innerHTML =
        curseur.value.titreAlbum + ", " + curseur.value.annee;
      list.appendChild(listItem);

      curseur.continue();
    } else {
      console.log("Entrées toutes affichés.");
    }
  };
}
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbcursor-continue① |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
IDBCursor.advance()
===================

La méthode **`advance()`** de l'interface `IDBCursor` définit le nombre d'itérations du curseur avec lequel celui-ci doit se déplacer vers l'avant.

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

Syntaxe
-------


```js
cursor.advance(count);
```

### Paramètres

`count`

Le nombre d'itérations du curseur.

### Valeur de retour

Aucune.

### Exceptions

Cette méthode peut déclencher des exceptions `DOMException` :

| Exception | Description |
| --- | --- |
| `TransactionInactiveError` | Cette transaction IDBCursor est inactive. |
| `TypeError` | La valeur passée au paramètre `count` vaut zéro ou est négative. |
| `InvalidStateError` | Le curseur est en itération ou a itéré au-delà de la plage. |

Exemple
-------

Dans ce petit morceau de code on fait une transaction, récupère un magasin d'objet, puis utilise un curseur pour itérer sur les enregistrements du magasin. Ici, on utilise `cursor.advance(2)` pour avancer de 2 cases à chaque fois, ce qui signifie que seule la moitié des résultats sera affichée. `advance()` fonctionne de façon similaire à `IDBCursor.continue` mais permet de sauter plusieurs enregistrements à la fois et pas uniquement d'accéder à l'enregistrement suivant.

On notera également que, dans chaque itération de la boucle, on peut récupérer les données de l'enregistrement en cours grâce à l'objet curseur via `curseur.value.foo`. Pour un exemple fonctionnel complet, voir notre exemple IDBCursor (l'exemple en *live*).


```js
function advanceResult() {
  list.innerHTML = "";
  var transaction = db.transaction(["granListAlbum"], "readonly");
  var objectStore = transaction.objectStore("granListAlbum");

  objectStore.openCursor().onsuccess = function (event) {
    var curseur = event.target.result;
    if (curseur) {
      var listItem = document.createElement("li");
      listItem.innerHTML =
        "" + curseur.value.titreAlbum + ", " + curseur.value.annee;
      list.appendChild(listItem);
      curseur.advance(2);
    } else {
      console.log("moitié des resultats affichée");
    }
  };
}
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbcursor-advance① |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
IDBDatabase.close()
===================

La méthode **`close()`** de l'interface `IDBDatabase` ferme de façon asynchrone la connexion à la base de donnée.

La connexion sera fermée lorsque toutes les transactions liées à cette connexion seront terminées. En revanche, on ne pourra pas démarrer de nouvelles transactions sur la connexion une fois que cette méthode a été appelée. Les méthodes qui initialisent des transactions déclencheront une exception lorsque la fermeture est en cours.

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

Syntaxe
-------


```js
db.close();
```

### Valeur de retour

Aucune.

Exemple
-------


```js
// ouverture de la connexion à la base de données toDoList
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// deux gestionnaires d’événements effectuant les
// opérations après que l'ouverture se soit bien
// passée ou non.
DBOpenRequest.onerror = function (event) {
  note.innerHTML += "<li>Erreur lors du chargement de la base.</li>";
};

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Base chargée.</li>";

  // affecte la connexion à la variable db
  db = DBOpenRequest.result;

  // fermeture de la base de donnée.
  db.close();
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbdatabase-close② |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
IDBDatabase.objectStoreNames
============================

La propriété **`objectStoreNames`**, rattachée à l'interface `IDBDatabase`, est une liste de chaînes de caractères (`DOMStringList`) qui sont les noms des magasins d'objets (`IDBObjectStore`) connectés à la base de données.

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

Syntaxe
-------


```js
db.objectStoreNames;
```

### Valeur

Une liste `DOMStringList` des noms de magasins d'objets (`IDBObjectStore`) connectés à la base de données.

Exemple
-------


```js
// Connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// Les deux gestionnaires d’événements activés pour
// gérer la réussite ou l'échec de le connexion.
DBOpenRequest.onerror = function (event) {
  note.innerHTML += "<li>Erreur de chargement de la base de données.</li>";
};

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Base de données initialisée.</li>";

  // Affecte la connexion à la variable db.
  db = DBOpenRequest.result;

  // Cette ligne affiche sur la console la liste des magasins
  // d'objets de la base de données
  console.log(db.objectStoreNames);
};
```


**Note :** Pour un exemple fonctionnel complet, voir notre application de démo To-do Notifications (l'exemple *live*).

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbdatabase-objectstorenames① |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
IDBDatabase.onversionchange
===========================

Le gestionnaire d'événement **`onversionchange`**, rattaché à l'interface `IDBDatabase`, s'exécute au déclenchement de l'événement `versionchange` qui se produit lorsque la structure de la base de donnée change (l'événement `IDBOpenDBRequest.onupgradeneeded` (en-US) ou `IDBFactory.deleteDatabase` a été demandé par ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur)).

Cela n'est pas la même chose qu'une transaction `versionchange` (bien que les concepts soient apparentés).

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

Syntaxe
-------


```js
db.onversionchange = function() { ... }
```

Exemple
-------

Cette exemple illustre un gestionnaire d'événement `IDBOpenDBRequest.onupgradeneeded` (en-US) dans lequel on ajoute un magasin d'objets. Les deux gestionnaires d'événements `onerror` et `onabort` sont utilisés pour les cas d'échec. Le gestionnaire d'événement `onversionchange` est utilisé afin d'indiquer que la structure de la base de données a été modifiée.


```js
DBOpenRequest.onupgradeneeded = function (event) {
  var db = event.target.result;

  db.onerror = function () {
    note.innerHTML += "<li>Erreur du chargement de la base de données.</li>";
  };

  db.onabort = function () {
    note.innerHTML += "<li>L'ouverture de la connexion à été annulée !</li>";
  };

  // Ajoute un magasin d'objets à la base de données

  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });

  // Définition des index

  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });

  objectStore.createIndex("notified", "notified", { unique: false });

  note.innerHTML += "<li>Le magasin d'objet à été ajouté.</li>";

  db.onversionchange = function (event) {
    note.innerHTML +=
      "<li>Des changements ont été appliqués sur la base de données. Vous devez réactualiser cette page ou la fermer et utiliser l'autre version de cette application qui est ouverte.</li>";
  };
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # eventdef-idbdatabase-versionchange |
| Indexed Database API 3.0 # dom-idbdatabase-onversionchange |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications
IDBDatabase.version
===================

La propriété **`version`**, rattachée à l'interface `IDBDatabase`, est un entier sur 64 bits qui contient la version de la base de données à laquelle on est connecté. Lors de la création initiale d'une base de données, cet attribut a la chaîne vide.

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

Syntaxe
-------


```js
db.version;
```

### Valeur

Un entier qui contient la version de la base de données à laquelle on est connecté.

Exemples
--------


```js
// On ouvre la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// On déclare des gestionnaires d'évènements pour l'ouverture
DBOpenRequest.onerror = function (event) {
  note.innerHTML += "<li>Erreur lors du chargement de la base de données.</li>";
};

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Base de données initialisée.</li>";

  // on stocke le résultat de l'ouverture si besoin de l'utiliser ensuite
  db = DBOpenRequest.result;

  // Cette ligne inscrira la version de la base dans la console : "4"
  console.log(db.version);
};
```

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbdatabase-version① |

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

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

Voir aussi
----------

* Utiliser IndexedDB
* Initier une connexion : `IDBDatabase`
* Utiliser les transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer et modifier les données : `IDBObjectStore`
* Utiliser les curseurs `IDBCursor`
* Exemple de référence : To-do Notifications (exemple *live*).
IDBDatabase.name
================

La propriété **`name`** de l'interface `IDBDatabase` est une chaîne de caractères, sous la forme d'un objet `DOMString`, contenant le nom de la base de données connectée.

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

Syntaxe
-------


```js
db.name;
```

### Valeur

Une chaîne de caractères `DOMString` contenant le nom de la base de données connectée.

Exemple
-------

Cet exemple affiche le nom de la base de données qui est ouverte. La connexion (l'objet `IDBDatabase`) est affectée à la variable `db`, puis sa propriété `name` est affichée dans la console.


```js
// Connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// Les deux gestionnaires d'événement activés pour
// détecter si l'ouverture de la base se déroule
// correctement ou non.

DBOpenRequest.onerror = function (event) {
  note.innerHTML += "<li>Erreur au chargement de la base de données.</li>";
};

DBOpenRequest.onsuccess = function (event) {
  note.innerHTML += "<li>Base de données initialisée.</li>";

  // Affecte la connexion à la variable db.
  db = DBOpenRequest.result;

  // Affiche le nom de la base de donnée (ici "toDoList")
  // dans la console.
  console.log(db.name);
};
```


**Note :** Pour un exemple fonctionnel complet, voir notre To-do Notifications (voir l'exemple *live*).

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

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbdatabase-name① |

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

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

Voir aussi
----------

* Manipuler IndexedDB
* Démarrer des transactions : `IDBDatabase`
* Manipuler des transactions : `IDBTransaction`
* Définir un intervalle de clés : `IDBKeyRange`
* Récupérer des données et les modifier : `IDBObjectStore`
* Manipuler des curseurs : `IDBCursor`
* Exemple de référence pour IndexedDB : To-do Notifications