diff options
author | julieng <julien.gattelier@gmail.com> | 2021-10-02 17:20:24 +0200 |
---|---|---|
committer | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-10-02 17:30:20 +0200 |
commit | 1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde (patch) | |
tree | 30a56efd3eff3a01bd1611e1840fdbbfacf544a4 /files/fr/web/api/idbdatabase | |
parent | c05efa8d7ae464235cf83d7c0956e42dc6974103 (diff) | |
download | translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.gz translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.bz2 translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.zip |
convert content to md
Diffstat (limited to 'files/fr/web/api/idbdatabase')
-rw-r--r-- | files/fr/web/api/idbdatabase/close/index.md | 83 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/createobjectstore/index.md | 180 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/deleteobjectstore/index.md | 129 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/index.md | 145 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/name/index.md | 89 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/objectstorenames/index.md | 87 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/onabort/index.md | 81 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/onerror/index.md | 81 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/onversionchange/index.md | 85 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/transaction/index.md | 283 | ||||
-rw-r--r-- | files/fr/web/api/idbdatabase/version/index.md | 79 |
11 files changed, 606 insertions, 716 deletions
diff --git a/files/fr/web/api/idbdatabase/close/index.md b/files/fr/web/api/idbdatabase/close/index.md index 63f025584d..4da6941350 100644 --- a/files/fr/web/api/idbdatabase/close/index.md +++ b/files/fr/web/api/idbdatabase/close/index.md @@ -8,73 +8,64 @@ tags: - Reference translation_of: Web/API/IDBDatabase/close --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>La méthode <strong><code>close()</code></strong> de l'interface {{domxref("IDBDatabase")}} ferme de façon asynchrone la connexion à la base de donnée.</p> +La méthode **`close()`** de l'interface {{domxref("IDBDatabase")}} ferme de façon asynchrone la connexion à la base de donnée. -<p>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.</p> +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. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.close();</pre> +```js +db.close(); +``` -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>Aucune.</p> +Aucune. -<h2 id="Exemple">Exemple</h2> +## Exemple -<pre class="brush: js">// ouverture de la connexion à la base de données toDoList +```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>'; + note.innerHTML += '<li>Erreur lors du chargement de la base.</li>'; }; DBOpenRequest.onsuccess = function(event) { - note.innerHTML += '<li>Base chargée.</li>'; + 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(); - }</pre> - -<h2 id="Spécification">Spécification</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-close-void', 'close()')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.close")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> + } +``` + +## Spécification + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-close-void', 'close()')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.close")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/createobjectstore/index.md b/files/fr/web/api/idbdatabase/createobjectstore/index.md index 89948ee860..a829b7c64a 100644 --- a/files/fr/web/api/idbdatabase/createobjectstore/index.md +++ b/files/fr/web/api/idbdatabase/createobjectstore/index.md @@ -8,76 +8,57 @@ tags: - Reference translation_of: Web/API/IDBDatabase/createObjectStore --- -<div>{{APIRef("IndexedDB")}}</div> - -<p>La méthode <strong><code>createObjectStore()</code></strong>, rattachée à l'interface {{domxref("IDBDatabase")}}, permet d'ajouter un magasin d’objet ou un index à la base de donnée et renvoie un accès vers celui-ci.</p> - -<p>Cette méthode utilise deux paramètres : le nom du magasin d'objets et un objet qui permettra de définir des propriétés optionnelles supplémentaires.</p> - -<p>Cette méthode ne peut être appelée que lors d'une transaction en mode <a href="/fr/docs/Web/API/IDBTransaction"><code>versionchange</code></a>.</p> - -<p>{{AvailableInWorkers}}</p> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="brush: js">var objectStore = db.createObjectStore(name, optionalParameters); -</pre> - -<h2 id="Paramètres">Paramètres</h2> - -<dl> - <dt><code>name</code></dt> - <dd>Le nom du magasin d'objet à ajouter. Il est possible d'ajouter un magasin d’objet dont le nom est la chaîne vide (!).</dd> - <dt><code>optionalParameters</code> {{optional_inline}}</dt> - <dd> - <p>Un objet qui permet de décrire plus finement le magasin d'objets avec ces propriétés :</p> - - <table class="standard-table"> - <thead> - <tr> - <th scope="col">Propriété</th> - <th scope="col">Description</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>keyPath</code></td> - <td>Le chemin de la clé utilisé par le magasin d'objet. Si ce paramètre est vide ou non spécifié, le magasin d'objets utilisera une clé externe. Le <code>keyPath</code> peut aussi être un tableau.</td> - </tr> - <tr> - <td><code>autoIncrement</code></td> - <td>Si <code>true</code>, le magasin d’objet implémentera un générateur de clé. La valeur par défaut est <code>false</code>.</td> - </tr> - </tbody> - </table> - - <p>Les autres propriétés seront ignorés.</p> - </dd> -</dl> - -<h3 id="Valeur_de_retour">Valeur de retour</h3> - -<dl> - <dt>{{domxref("IDBObjectStore")}}</dt> - <dd>Le magasin d'objets qui vient d'être créé.</dd> -</dl> - -<h2 id="Exceptions">Exceptions</h2> - -<dl> - <dt><code>InvalidStateError</code></dt> - <dd>Cette exception {{domxref("DOMException")}} est levée si la méthode n'est pas appelée lors d'une transaction en mode <code>versionchange</code>. Pour les anciens navigateurs basés sur WebKit, il faut d'abord appeler {{domxref("IDBVersionChangeRequest.setVersion")}}.</dd> - <dt><code>TransactionInactiveError</code></dt> - <dd>Cette exception {{domxref("DOMException")}} est levée si la méthode est appelée sur une base de données qui n'existe pas (elle a par exemple été effacée). Dans les versions antérieures à Firefox 41, ce dernier levait une erreur <code>InvalidStateError</code>, cela est désormais corrigé (cf. {{bug("1176165")}}).</dd> - <dt><code>ConstraintError</code></dt> - <dd>Un magasin d'objet portant le même nom (la casse est importante) existe déjà dans cette base de donnée.</dd> - <dt><code>InvalidAccessError</code></dt> - <dd>Si la valeur <code>autoIncrement</code> est à <code>true</code> et que le chemin de clé n'est pas renseigné ou est un tableau vide.</dd> -</dl> - -<h2 id="Exemple">Exemple</h2> - -<pre class="brush: js"> // Ouverture de la base de données +{{APIRef("IndexedDB")}} + +La méthode **`createObjectStore()`**, rattachée à l'interface {{domxref("IDBDatabase")}}, permet d'ajouter un magasin d’objet ou un index à la base de donnée et renvoie un accès vers celui-ci. + +Cette méthode utilise deux paramètres : le nom du magasin d'objets et un objet qui permettra de définir des propriétés optionnelles supplémentaires. + +Cette méthode ne peut être appelée que lors d'une transaction en mode [`versionchange`](/fr/docs/Web/API/IDBTransaction). + +{{AvailableInWorkers}} + +## Syntaxe + +```js +var objectStore = db.createObjectStore(name, optionalParameters); +``` + +## Paramètres + +- `name` + - : Le nom du magasin d'objet à ajouter. Il est possible d'ajouter un magasin d’objet dont le nom est la chaîne vide (!). +- `optionalParameters` {{optional_inline}} + + - : Un objet qui permet de décrire plus finement le magasin d'objets avec ces propriétés : + + | Propriété | Description | + | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `keyPath` | Le chemin de la clé utilisé par le magasin d'objet. Si ce paramètre est vide ou non spécifié, le magasin d'objets utilisera une clé externe. Le `keyPath` peut aussi être un tableau. | + | `autoIncrement` | Si `true`, le magasin d’objet implémentera un générateur de clé. La valeur par défaut est `false`. | + + Les autres propriétés seront ignorés. + +### Valeur de retour + +- {{domxref("IDBObjectStore")}} + - : Le magasin d'objets qui vient d'être créé. + +## Exceptions + +- `InvalidStateError` + - : Cette exception {{domxref("DOMException")}} est levée si la méthode n'est pas appelée lors d'une transaction en mode `versionchange`. Pour les anciens navigateurs basés sur WebKit, il faut d'abord appeler {{domxref("IDBVersionChangeRequest.setVersion")}}. +- `TransactionInactiveError` + - : Cette exception {{domxref("DOMException")}} est levée si la méthode est appelée sur une base de données qui n'existe pas (elle a par exemple été effacée). Dans les versions antérieures à Firefox 41, ce dernier levait une erreur `InvalidStateError`, cela est désormais corrigé (cf. {{bug("1176165")}}). +- `ConstraintError` + - : Un magasin d'objet portant le même nom (la casse est importante) existe déjà dans cette base de donnée. +- `InvalidAccessError` + - : Si la valeur `autoIncrement` est à `true` et que le chemin de clé n'est pas renseigné ou est un tableau vide. + +## Exemple + +```js + // Ouverture de la base de données var request = window.indexedDB.open("toDoList", 4); /* Gestionnaire d'événement qui intervient lors de la @@ -91,7 +72,7 @@ translation_of: Web/API/IDBDatabase/createObjectStore var db = event.target.result; db.onerror = function(event) { - note.innerHTML += '<li>Erreur du chargement de la base de données.</li>'; + note.innerHTML += '<li>Erreur du chargement de la base de données.</li>'; }; // On ajoute un magasin d'objet à la base de données @@ -108,39 +89,26 @@ translation_of: Web/API/IDBDatabase/createObjectStore objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += '<li>Magasin d\'objet ajouté.</li>'; + note.innerHTML += '<li>Magasin d\'objet ajouté.</li>'; }; -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-createObjectStore-IDBObjectStore-DOMString-name-IDBObjectStoreParameters-optionalParameters', 'createObjectStore()')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.createObjectStore")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-createObjectStore-IDBObjectStore-DOMString-name-IDBObjectStoreParameters-optionalParameters', 'createObjectStore()')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.createObjectStore")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/deleteobjectstore/index.md b/files/fr/web/api/idbdatabase/deleteobjectstore/index.md index 4b9907c1de..d3d72f60ca 100644 --- a/files/fr/web/api/idbdatabase/deleteobjectstore/index.md +++ b/files/fr/web/api/idbdatabase/deleteobjectstore/index.md @@ -8,61 +8,45 @@ tags: - Reference translation_of: Web/API/IDBDatabase/deleteObjectStore --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>La méthode <strong><code>deleteObjectStore()</code></strong> de l'interface {{domxref("IDBDatabase")}} supprime un magasin d'objet et ses index de la base de données.</p> +La méthode **`deleteObjectStore()`** de l'interface {{domxref("IDBDatabase")}} supprime un magasin d'objet et ses index de la base de données. -<p>Comme la méthode {{domxref("IDBDatabase.createObjectStore")}}, cette méthode doit être appelée <em>uniquement</em> lors d'une transaction en mode <a href="/fr/docs/Web/API/IDBTransaction"><code>versionchange</code></a>.</p> +Comme la méthode {{domxref("IDBDatabase.createObjectStore")}}, cette méthode doit être appelée _uniquement_ lors d'une transaction en mode [`versionchange`](/fr/docs/Web/API/IDBTransaction). -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">dbInstance.deleteObjectStore(name);</pre> +```js +dbInstance.deleteObjectStore(name); +``` -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<dl> - <dt><code>name</code></dt> - <dd>Le nom du magasin d'objet à supprimer.</dd> -</dl> +- `name` + - : Le nom du magasin d'objet à supprimer. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>Aucune.</p> +Aucune. -<h3 id="Exceptions">Exceptions</h3> +### Exceptions -<p>Cette méthode peut lever une {{domxref("DOMException")}} d'un de ces types suivants:</p> +Cette méthode peut lever une {{domxref("DOMException")}} d'un de ces types suivants: -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Exception</th> - <th scope="col">Description</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>InvalidStateError</code></td> - <td>Levée si la méthode n'est pas appelée lors d'une transaction en mode <code>versionchange</code>. Pour les anciens navigateurs basés sur WebKit, il faut d'abord appeler la méthode {{domxref("IDBVersionChangeRequest.setVersion")}}.</td> - </tr> - <tr> - <td><code>TransactionInactiveError</code></td> - <td>Levée si la méthode est appelée sur une base de données qui n'existe pas (ex. elle a été effacée). Pour les versions antérieures à Firefox 41, ce dernier déclenchait une erreur <code>InvalidStateError</code>, cela est désormais corrigé (cf. {{bug("1176165")}}).</td> - </tr> - <tr> - <td><code>NotFoundError</code></td> - <td>Levée lors de la suppression d'un magasin d'objets qui n'existe pas. Les noms sont sensibles à la casse.</td> - </tr> - </tbody> -</table> +| Exception | Description | +| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `InvalidStateError` | Levée si la méthode n'est pas appelée lors d'une transaction en mode `versionchange`. Pour les anciens navigateurs basés sur WebKit, il faut d'abord appeler la méthode {{domxref("IDBVersionChangeRequest.setVersion")}}. | +| `TransactionInactiveError` | Levée si la méthode est appelée sur une base de données qui n'existe pas (ex. elle a été effacée). Pour les versions antérieures à Firefox 41, ce dernier déclenchait une erreur `InvalidStateError`, cela est désormais corrigé (cf. {{bug("1176165")}}). | +| `NotFoundError` | Levée lors de la suppression d'un magasin d'objets qui n'existe pas. Les noms sont sensibles à la casse. | -<h2 id="Exemples">Exemples</h2> +## Exemples -<p>Dans cet exemple, on ouvre une connexion à la base de données et dans le gestionnaire d'événements <code>onupdateneeded</code>, on ajoute un magasin d'objets en utilisant la méthode {{domxref("IDBDatabase.createObjectStore")}}. Enfin, on supprime ce magasin d'objets grâce à <code>deleteObjectStore()</code>.</p> +Dans cet exemple, on ouvre une connexion à la base de données et dans le gestionnaire d'événements `onupdateneeded`, on ajoute un magasin d'objets en utilisant la méthode {{domxref("IDBDatabase.createObjectStore")}}. Enfin, on supprime ce magasin d'objets grâce à `deleteObjectStore()`. -<pre class="brush: js;"> // Connexion à la base de données +```js + // Connexion à la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); /* Gestionnaire d'événements qui intervient lors de @@ -75,7 +59,7 @@ translation_of: Web/API/IDBDatabase/deleteObjectStore var db = event.target.result; db.onerror = function(event) { - note.innerHTML += '<li>Erreur du chargement de la base de données.</li>'; + note.innerHTML += '<li>Erreur du chargement de la base de données.</li>'; }; // Ajoute un magasin d'objets à la base de données @@ -92,48 +76,31 @@ translation_of: Web/API/IDBDatabase/deleteObjectStore objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += '<li>Magasin d\'objets ajouté.</li>'; + note.innerHTML += '<li>Magasin d\'objets ajouté.</li>'; // Supprime le magasin d'objets db.deleteObjectStore("toDoList"); }; -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-deleteObjectStore-void-DOMString-name', 'deleteObjectStore()')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName("IndexedDB 2", "#dom-idbdatabase-deleteobjectstore", "deleteObjectStore()")}}</td> - <td>{{Spec2("IndexedDB 2")}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.deleteObjectStore")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-deleteObjectStore-void-DOMString-name', 'deleteObjectStore()')}} | {{Spec2('IndexedDB')}} | | +| {{SpecName("IndexedDB 2", "#dom-idbdatabase-deleteobjectstore", "deleteObjectStore()")}} | {{Spec2("IndexedDB 2")}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.deleteObjectStore")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/index.md b/files/fr/web/api/idbdatabase/index.md index 9be924fb0b..99239a0809 100644 --- a/files/fr/web/api/idbdatabase/index.md +++ b/files/fr/web/api/idbdatabase/index.md @@ -8,69 +8,62 @@ tags: - Reference translation_of: Web/API/IDBDatabase --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>L'interface <strong><code>IDBDatabase</code></strong> de l'API IndexedDB fournit <a href="/fr/docs/Web/API/API_IndexedDB#Se_connecter_à_la_base_de_données">une connexion à la base de données</a>. On peut utiliser un objet <code>IDBDatabase</code> pour ouvrir une {{domxref("IDBTransaction","transaction")}} sur la base de données puis ajouter, éditer ou supprimer des enregistrements de cette base de données. Cette interface constitue le seul moyen d'accéder et de gérer les versions de la base de données.</p> +L'interface **`IDBDatabase`** de l'API IndexedDB fournit [une connexion à la base de données](/fr/docs/Web/API/API_IndexedDB#Se_connecter_à_la_base_de_données). On peut utiliser un objet `IDBDatabase` pour ouvrir une {{domxref("IDBTransaction","transaction")}} sur la base de données puis ajouter, éditer ou supprimer des enregistrements de cette base de données. Cette interface constitue le seul moyen d'accéder et de gérer les versions de la base de données. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<div class="note"> -<p><strong>Note :</strong> Tout ce qui est fait dans une base de données indexée s'inscrit dans le contexte d'une transaction qui représente un interaction avec les données dans la base. Tout les objets de l'interface IndexedDB (incluant les accès aux magasins d'objets, indexes et curseurs) sont liés à une transaction en particulier. Aussi, on ne peut pas exécuter une commande, accéder aux données ou ouvrir quoi que ce soit, en dehors d'une transaction.</p> -</div> +> **Note :** Tout ce qui est fait dans une base de données indexée s'inscrit dans le contexte d'une transaction qui représente un interaction avec les données dans la base. Tout les objets de l'interface IndexedDB (incluant les accès aux magasins d'objets, indexes et curseurs) sont liés à une transaction en particulier. Aussi, on ne peut pas exécuter une commande, accéder aux données ou ouvrir quoi que ce soit, en dehors d'une transaction. -<h2 id="Méthodes">Méthodes</h2> +## Méthodes -<p>Cet objet hérite de <a href="/fr/docs/Web/API/EventTarget">EventTarget</a>.</p> +Cet objet hérite de [EventTarget](/fr/docs/Web/API/EventTarget). -<dl> - <dt>{{domxref("IDBDatabase.close()")}}</dt> - <dd>Ferme de façon asynchrone la connexion à la base de données.</dd> - <dt>{{domxref("IDBDatabase.createObjectStore()")}}</dt> - <dd>Ajoute un magasin d’objet ou un index à la base de donnéeset le renvoie.</dd> - <dt>{{domxref("IDBDatabase.deleteObjectStore()")}}</dt> - <dd>À partir d'un nom donné, supprime un magasin d'objet et les index associés.</dd> - <dt>{{domxref("IDBDatabase.transaction()")}}</dt> - <dd>Renvoie une transaction sous la forme d'un objet {{domxref("IDBTransaction")}} sur lequel on peut appeler la méthode {{domxref("IDBTransaction.objectStore")}} afin d'accéder aux magasins d'objet de la base de données.</dd> -</dl> +- {{domxref("IDBDatabase.close()")}} + - : Ferme de façon asynchrone la connexion à la base de données. +- {{domxref("IDBDatabase.createObjectStore()")}} + - : Ajoute un magasin d’objet ou un index à la base de donnéeset le renvoie. +- {{domxref("IDBDatabase.deleteObjectStore()")}} + - : À partir d'un nom donné, supprime un magasin d'objet et les index associés. +- {{domxref("IDBDatabase.transaction()")}} + - : Renvoie une transaction sous la forme d'un objet {{domxref("IDBTransaction")}} sur lequel on peut appeler la méthode {{domxref("IDBTransaction.objectStore")}} afin d'accéder aux magasins d'objet de la base de données. -<h2 id="Propriétés">Propriétés</h2> +## Propriétés -<dl> - <dt>{{domxref("IDBDatabase.name")}} {{readonlyInline}}</dt> - <dd>Une chaîne de caractères ({{domxref("DOMString")}}) qui contient le nom de la base de données connectée.</dd> - <dt>{{domxref("IDBDatabase.version")}} {{readonlyInline}}</dt> - <dd>Un <a href="/fr/docs/Mozilla/Projects/NSPR/Reference/Long_Long_(64-bit)_Integers">entier de 64 bits</a> qui indique la version de la base de données connectée. Quand une base de données est créée, cette propriété est une chaîne de caractère vide.</dd> - <dt>{{domxref("IDBDatabase.objectStoreNames")}} {{readonlyInline}}</dt> - <dd>Une liste de noms (sous la forme d'un objet {{domxref("DOMStringList")}} des magasins d'objets correspondants à la base de données connectée.</dd> -</dl> +- {{domxref("IDBDatabase.name")}} {{readonlyInline}} + - : Une chaîne de caractères ({{domxref("DOMString")}}) qui contient le nom de la base de données connectée. +- {{domxref("IDBDatabase.version")}} {{readonlyInline}} + - : Un [entier de 64 bits](</fr/docs/Mozilla/Projects/NSPR/Reference/Long_Long_(64-bit)_Integers>) qui indique la version de la base de données connectée. Quand une base de données est créée, cette propriété est une chaîne de caractère vide. +- {{domxref("IDBDatabase.objectStoreNames")}} {{readonlyInline}} + - : Une liste de noms (sous la forme d'un objet {{domxref("DOMStringList")}} des magasins d'objets correspondants à la base de données connectée. -<h3 id="Gestionnaires_d'événements">Gestionnaires d'événements</h3> +### Gestionnaires d'événements -<dl> - <dt>{{domxref("IDBDatabase.onabort")}}</dt> - <dd>S'exécute au déclenchement de l'événement <code>abort</code> quand la tentative d’accès à la base de donnée est interrompue.</dd> - <dt>{{domxref("IDBDatabase.onerror")}}</dt> - <dd>S’exécute au déclenchement de l'événement <code>error</code> quand la connexion à la base de donnée échoue.</dd> - <dt>{{domxref("IDBDatabase.onversionchange")}}</dt> - <dd>S’exécute au déclenchement de l'événement <code>versionchange</code> quand la structure de la base de donnée change (l'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("IDBFactory.deleteDatabase")}} à été demandé ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur). Cela est différent de la transaction correspondant à un changement de version (cf. {{domxref("IDBVersionChangeEvent")}}) mais les concepts sont liés.</dd> -</dl> +- {{domxref("IDBDatabase.onabort")}} + - : S'exécute au déclenchement de l'événement `abort` quand la tentative d’accès à la base de donnée est interrompue. +- {{domxref("IDBDatabase.onerror")}} + - : S’exécute au déclenchement de l'événement `error` quand la connexion à la base de donnée échoue. +- {{domxref("IDBDatabase.onversionchange")}} + - : S’exécute au déclenchement de l'événement `versionchange` quand la structure de la base de donnée change (l'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("IDBFactory.deleteDatabase")}} à été demandé ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur). Cela est différent de la transaction correspondant à un changement de version (cf. {{domxref("IDBVersionChangeEvent")}}) mais les concepts sont liés. -<h2 id="Exemples">Exemples</h2> +## Exemples -<p>Dans le fragment de code suivant, on ouvre une base de données de façon asynchrone avec {{domxref("IDBFactory")}} puis on gère les cas de succès et d'erreur avant de créer un nouveau magasin d'objet au cas où une mise à jour est nécessaire ({{domxref("IDBdatabase")}}). Pour étudier un exemple complet et fonctionnel, voir notre application <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> (<a href="https://mdn.github.io/to-do-notifications/">voir l'exemple <em>live</em></a>).</p> +Dans le fragment de code suivant, on ouvre une base de données de façon asynchrone avec {{domxref("IDBFactory")}} puis on gère les cas de succès et d'erreur avant de créer un nouveau magasin d'objet au cas où une mise à jour est nécessaire ({{domxref("IDBdatabase")}}). Pour étudier un exemple complet et fonctionnel, voir notre application [To-do Notifications](https://github.com/mdn/to-do-notifications/) ([voir l'exemple _live_](https://mdn.github.io/to-do-notifications/)). -<pre class="brush: js">// On ouvre la base de données +```js +// On ouvre la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); // On ajoute les deux gestionnaires d'événements // qui agissent sur l'objet IDBDatabase object, // dans le cas où tout se passe bien ou non DBOpenRequest.onerror = function(event) { - note.innerHTML += '<li>Erreur lors du chargement de la base de données.</li>'; + 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>'; + note.innerHTML += '<li>Base de données initialisée.</li>'; // On enregistre le résultat de l'ouverture // dans la variable db (on l'utilisera plusieurs @@ -93,7 +86,7 @@ translation_of: Web/API/IDBDatabase var db = event.target.result; db.onerror = function(event) { - note.innerHTML += '<li>Erreur lors du chargement de la base de données.</li>'; + note.innerHTML += '<li>Erreur lors du chargement de la base de données.</li>'; }; // On crée un magasin d'objet objectStore pour @@ -112,42 +105,32 @@ translation_of: Web/API/IDBDatabase objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += "<li>Magasin d'objets créé.</li>"; - };</pre> - -<p>La ligne qui suit permet d'ouvrir une transaction avec cette base de données afin de consulter le magasin d'objets et de manipuler les données qu'il contient..</p> - -<pre class="brush: js">var objectStore = db.transaction('toDoList').objectStore('toDoList'); </pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#idl-def-IDBDatabase', 'IDBDatabase')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> + note.innerHTML += "<li>Magasin d'objets créé.</li>"; + }; +``` + +La ligne qui suit permet d'ouvrir une transaction avec cette base de données afin de consulter le magasin d'objets et de manipuler les données qu'il contient.. + +```js +var objectStore = db.transaction('toDoList').objectStore('toDoList'); +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ------------------------------------------------------------------------------------ | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#idl-def-IDBDatabase', 'IDBDatabase')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/name/index.md b/files/fr/web/api/idbdatabase/name/index.md index 635a6ae383..eb40259dab 100644 --- a/files/fr/web/api/idbdatabase/name/index.md +++ b/files/fr/web/api/idbdatabase/name/index.md @@ -8,25 +8,28 @@ tags: - Reference translation_of: Web/API/IDBDatabase/name --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>La propriété <strong><code>name</code></strong> de l'interface <code>IDBDatabase</code> est une chaîne de caractères, sous la forme d'un objet {{domxref("DOMString")}}, contenant le nom de la base de données connectée.</p> +La propriété **`name`** de l'interface `IDBDatabase` est une chaîne de caractères, sous la forme d'un objet {{domxref("DOMString")}}, contenant le nom de la base de données connectée. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.name</pre> +```js +db.name +``` -<h3 id="Valeur">Valeur</h3> +### Valeur -<p>Une chaîne de caractères {{domxref("DOMString")}} contenant le nom de la base de données connectée.</p> +Une chaîne de caractères {{domxref("DOMString")}} contenant le nom de la base de données connectée. -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>Cet exemple affiche le nom de la base de données qui est ouverte. La connexion (l'objet {{domxref("IDBDatabase")}}) est affectée à la variable <code>db</code>, puis sa propriété <code>name</code> est affichée dans la console.</p> +Cet exemple affiche le nom de la base de données qui est ouverte. La connexion (l'objet {{domxref("IDBDatabase")}}) est affectée à la variable `db`, puis sa propriété `name` est affichée dans la console. -<pre class="brush: js">// Connexion à la base de données +```js +// Connexion à la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); // Les deux gestionnaires d'événement activés pour @@ -34,11 +37,11 @@ var DBOpenRequest = window.indexedDB.open("toDoList", 4); // correctement ou non. DBOpenRequest.onerror = function(event) { - note.innerHTML += '<li>Erreur au chargement de la base de données.</li>'; + 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>'; + note.innerHTML += '<li>Base de données initialisée.</li>'; // Affecte la connexion à la variable db. db = DBOpenRequest.result; @@ -46,41 +49,27 @@ DBOpenRequest.onsuccess = function(event) { // Affiche le nom de la base de donnée (ici "toDoList") // dans la console. console.log(db.name); -};</pre> - -<div class="note"> - <p><strong>Note :</strong> Pour un exemple fonctionnel complet, voir notre <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> (<a href="https://mdn.github.io/to-do-notifications/">voir l'exemple <em>live</em></a>).</p> -</div> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-name', 'name')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.name")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> +}; +``` + +> **Note :** Pour un exemple fonctionnel complet, voir notre [To-do Notifications](https://github.com/mdn/to-do-notifications/) ([voir l'exemple _live_](https://mdn.github.io/to-do-notifications/)). + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-name', 'name')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.name")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/objectstorenames/index.md b/files/fr/web/api/idbdatabase/objectstorenames/index.md index f9263bdf33..10b54b94f4 100644 --- a/files/fr/web/api/idbdatabase/objectstorenames/index.md +++ b/files/fr/web/api/idbdatabase/objectstorenames/index.md @@ -9,33 +9,36 @@ tags: - Reference translation_of: Web/API/IDBDatabase/objectStoreNames --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>La propriété <strong><code>objectStoreNames</code></strong>, rattachée à l'interface {{domxref("IDBDatabase")}}, est une liste de chaînes de caractères ({{domxref("DOMStringList")}}) qui sont les noms des magasins d'objets ({{domxref("IDBObjectStore")}}) connectés à la base de données.</p> +La propriété **`objectStoreNames`**, rattachée à l'interface {{domxref("IDBDatabase")}}, est une liste de chaînes de caractères ({{domxref("DOMStringList")}}) qui sont les noms des magasins d'objets ({{domxref("IDBObjectStore")}}) connectés à la base de données. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.objectStoreNames</pre> +```js +db.objectStoreNames +``` -<h3 id="Valeur">Valeur</h3> +### Valeur -<p>Une liste {{domxref("DOMStringList")}} des noms de magasins d'objets ({{domxref("IDBObjectStore")}}) connectés à la base de données.</p> +Une liste {{domxref("DOMStringList")}} des noms de magasins d'objets ({{domxref("IDBObjectStore")}}) connectés à la base de données. -<h2 id="Exemple">Exemple</h2> +## Exemple -<pre class="brush: js">// Connexion à la base de données +```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>'; + 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>'; + note.innerHTML += '<li>Base de données initialisée.</li>'; // Affecte la connexion à la variable db. db = DBOpenRequest.result; @@ -43,41 +46,27 @@ DBOpenRequest.onsuccess = function(event) { // Cette ligne affiche sur la console la liste des magasins // d'objets de la base de données console.log(db.objectStoreNames); -};</pre> - -<div class="note"> - <p><strong>Note :</strong>Pour un exemple fonctionnel complet, voir notre application de démo <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> (<a href="https://mdn.github.io/to-do-notifications/">l'exemple <em>live</em></a>).</p> -</div> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-objectStoreNames', 'objectStoreNames')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.objectStoreNames")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> +}; +``` + +> **Note :**Pour un exemple fonctionnel complet, voir notre application de démo [To-do Notifications](https://github.com/mdn/to-do-notifications/) ([l'exemple _live_](https://mdn.github.io/to-do-notifications/)). + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-objectStoreNames', 'objectStoreNames')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.objectStoreNames")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/onabort/index.md b/files/fr/web/api/idbdatabase/onabort/index.md index f47e7695e2..8f6a346a16 100644 --- a/files/fr/web/api/idbdatabase/onabort/index.md +++ b/files/fr/web/api/idbdatabase/onabort/index.md @@ -8,29 +8,32 @@ tags: - Reference translation_of: Web/API/IDBDatabase/onabort --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>Le gestionnaire d'événement <strong><code>onabort</code></strong>, rattaché à l'interface {{domxref("IDBDatabase")}}, s'exécute au déclenchement de l'événement <code>abort</code>, lorsque la tentative d’accès à la base de données est interrompue.</p> +Le gestionnaire d'événement **`onabort`**, rattaché à l'interface {{domxref("IDBDatabase")}}, s'exécute au déclenchement de l'événement `abort`, lorsque la tentative d’accès à la base de données est interrompue. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.onabort = function() { ... }</pre> +```js +db.onabort = function() { ... } +``` -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>Cette exemple illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} dans lequel on ajoute un magasin d'objet et les deux gestionnaires d'événement <code>onerror</code> et <code>onabort</code> pour gérer les cas d'échec.</p> +Cette exemple illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} dans lequel on ajoute un magasin d'objet et les deux gestionnaires d'événement `onerror` et `onabort` pour gérer les cas d'échec. -<pre class="brush: js">DBOpenRequest.onupgradeneeded = function(event) { +```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>'; + 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>'; + note.innerHTML += '<li>L\'ouverture de la connexion à été annulée !</li>'; }; // On ajoute un magasin d'objet à la base de données @@ -47,38 +50,26 @@ translation_of: Web/API/IDBDatabase/onabort objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += '<li>Le magasin d\'objets à été ajouté.</li>'; -};</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-onabort', 'onabort')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_avec_les_navigateurs">Compatibilité avec les navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.onabort")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> + note.innerHTML += '<li>Le magasin d\'objets à été ajouté.</li>'; +}; +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-onabort', 'onabort')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité avec les navigateurs + +{{Compat("api.IDBDatabase.onabort")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/onerror/index.md b/files/fr/web/api/idbdatabase/onerror/index.md index b8357dce06..e35322fb03 100644 --- a/files/fr/web/api/idbdatabase/onerror/index.md +++ b/files/fr/web/api/idbdatabase/onerror/index.md @@ -8,29 +8,32 @@ tags: - Reference translation_of: Web/API/IDBDatabase/onerror --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>Le gestionnaire d'événement <strong><code>onerror</code></strong>, rattaché à l'interface <code>IDBDatabase</code>, s’exécute au déclenchement de l'événement <code>error</code> qui se produit lorsque la connexion à la base de donnée échoue.</p> +Le gestionnaire d'événement **`onerror`**, rattaché à l'interface `IDBDatabase`, s’exécute au déclenchement de l'événement `error` qui se produit lorsque la connexion à la base de donnée échoue. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.onerror = function() { ... }</pre> +```js +db.onerror = function() { ... } +``` -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>Dans cet exemple, on illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} dans lequel on ajoute un magasin d'objet et les deux gestionnaires d'événements <code>onerror</code> et <code>onabort</code> afin de gérer les cas d'échec de la connexion.</p> +Dans cet exemple, on illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} dans lequel on ajoute un magasin d'objet et les deux gestionnaires d'événements `onerror` et `onabort` afin de gérer les cas d'échec de la connexion. -<pre class="brush: js">DBOpenRequest.onupgradeneeded = function(event) { +```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>'; + 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é!</li>'; + note.innerHTML += '<li>L\'ouverture de la connexion à été annulé!</li>'; }; // Ajoute un magasin d'objet à la base de données @@ -47,38 +50,26 @@ translation_of: Web/API/IDBDatabase/onerror objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += '<li>Le magasin d\'objets à été ajouté.</li>'; -};</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-onerror', 'onerror')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.onerror")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> + note.innerHTML += '<li>Le magasin d\'objets à été ajouté.</li>'; +}; +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-onerror', 'onerror')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.onerror")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/onversionchange/index.md b/files/fr/web/api/idbdatabase/onversionchange/index.md index 51741c0f7d..6cb138d0bc 100644 --- a/files/fr/web/api/idbdatabase/onversionchange/index.md +++ b/files/fr/web/api/idbdatabase/onversionchange/index.md @@ -8,31 +8,34 @@ tags: - Reference translation_of: Web/API/IDBDatabase/onversionchange --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>Le gestionnaire d'événement <strong><code>onversionchange</code></strong>, rattaché à l'interface {{domxref("IDBDatabase")}}, s’exécute au déclenchement de l'événement <code>versionchange</code> qui se produit lorsque la structure de la base de donnée change (l'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("IDBFactory.deleteDatabase")}} a été demandé par ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur)).</p> +Le gestionnaire d'événement **`onversionchange`**, rattaché à l'interface {{domxref("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 {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("IDBFactory.deleteDatabase")}} a été demandé par ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur)). -<p>Cela n'est pas la même chose qu'une transaction <code>versionchange</code> (bien que les concepts soient apparentés).</p> +Cela n'est pas la même chose qu'une transaction `versionchange` (bien que les concepts soient apparentés). -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">db.onversionchange = function() { ... }</pre> +```js +db.onversionchange = function() { ... } +``` -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>Cette exemple illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} dans lequel on ajoute un magasin d'objets. Les deux gestionnaires d'événements <code>onerror</code> et <code>onabort</code> sont utilisés pour les cas d'échec. Le gestionnaire d'événement <code>onversionchange</code> est utilisé afin d'indiquer que la structure de la base de données a été modifiée.</p> +Cette exemple illustre un gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} 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. -<pre class="brush: js">DBOpenRequest.onupgradeneeded = function(event) { +```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>'; + 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>'; + note.innerHTML += '<li>L\'ouverture de la connexion à été annulée !</li>'; }; // Ajoute un magasin d'objets à la base de données @@ -49,42 +52,30 @@ translation_of: Web/API/IDBDatabase/onversionchange objectStore.createIndex("notified", "notified", { unique: false }); - note.innerHTML += '<li>Le magasin d\'objet à été ajouté.</li>'; + 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>'; + 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>'; }; -};</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-onversionchange', 'onversionchange')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.onversionchange")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Manipuler IndexedDB</a></li> - <li>Démarrer des transactions : {{domxref("IDBDatabase")}}</li> - <li>Manipuler des transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer des données et les modifier : {{domxref("IDBObjectStore")}}</li> - <li>Manipuler des curseurs : {{domxref("IDBCursor")}}</li> - <li>Exemple de référence pour IndexedDB : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a></li> -</ul> +}; +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-onversionchange', 'onversionchange')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.onversionchange")}} + +## Voir aussi + +- [Manipuler IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Démarrer des transactions : {{domxref("IDBDatabase")}} +- Manipuler des transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer des données et les modifier : {{domxref("IDBObjectStore")}} +- Manipuler des curseurs : {{domxref("IDBCursor")}} +- Exemple de référence pour IndexedDB : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) diff --git a/files/fr/web/api/idbdatabase/transaction/index.md b/files/fr/web/api/idbdatabase/transaction/index.md index 531edfbdb2..06fa78ba1b 100644 --- a/files/fr/web/api/idbdatabase/transaction/index.md +++ b/files/fr/web/api/idbdatabase/transaction/index.md @@ -3,93 +3,147 @@ title: IDBDatabase.transaction() slug: Web/API/IDBDatabase/transaction translation_of: Web/API/IDBDatabase/transaction --- -<p>{{ APIRef("IndexedDB") }}</p> - -<div> -<p>La méthode <strong><code>transaction</code></strong> de l'interface {{domxref("IDBDatabase")}} renvoie une {{domxref("IDBTransaction","transaction")}} sur laquelle on peut appeler la méthode {{domxref("IDBTransaction.objectStore")}} pour accéder aux magasins d'objets de la base de donnée.</p> -</div> - -<p>{{AvailableInWorkers}}</p> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="brush: js">var transaction = db.transaction(storeNames, mode);</pre> - -<h2 id="Paramètres">Paramètres</h2> - -<dl> - <dt>storeNames</dt> - <dd><p>un tableau de noms de magasins d'objets entrant dans le cadre de cette transaction. Indique seulement les magasins d'objets dont on a besoin. Si l’on n’a besoin que d’un seul magasin d'objet, on peut simplement passer son nom. Les lignes suivantes sont équivalentes :</p> - <pre class="brush: js">var transaction = db.transaction(['my-store-name']); -var transaction = db.transaction('my-store-name');</pre> - <p>Pour utiliser tous les magasins d'objets de la base de donnée, on peut appeler la methode {{domxref("IDBDatabase.objectStoreNames")}}:</p> - <pre class="brush:js;">var transaction = db.transaction(db.objectStoreNames);</pre> - <p>Passer un tableau vide lèvera une exception.</p></dd> - <dt>mode {{optional_inline}}</dt> - <dd><p>Le {{domxref("IDBTransactionMode","mode")}} d’{{domxref("IDBObjectStore","accès aux magasins d'objets")}} à la base de données (par default <code>readonly</code>):</p> - <table class="standard-table"> - <thead> - <tr> - <th scope="col">Valeur</th> - <th scope="col">Explication</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>readonly</code></td> - <td>permet de prendre des objets dans les magasins d'objets, de lire les index et de faire des curseurs.</td> - </tr> - <tr> - <td><code>readwrite</code></td> - <td>Permet en plus de que l'on peut faire en readonly, d’ajouter et mettre à jour des objets dans les magasins d'objets.</td> - </tr> - <tr> - <td><code>versionchange</code></td> - <td>Permet toute les opérations, y compris celles qui suppriment ou ajoutent des {{domxref("IDBOjectStore","magasins d'objets")}} ou des {{domxref("IDBIndex","index")}}. Ce mode met à jour le numéro de version de la base de données, il se sert au début de {{domxref ("IDBDatabase.setVersion")}}. Les {{domxref("IDBTransaction","transactions")}} dans ce mode ne peuvent pas fonctionner en même temps que d'autres.</td> - </tr> - <tr> - <td><code>readwriteflush</code></td> - <td> - <p>Si vous devez vous assurer de l'efficacité d'une transaction pour une raison quelconque (par exemple, vous stockez des données critiques qui ne peuvent être recalculées plus tard), vous pouvez forcer l’enregistrement complet sur disque avant de déclencher l’événement <code>complete</code> en utilisant le mode <code>readwriteflush</code> (non standard) expérimental ( voir {{domxref("IDBDatabase.transaction")}} ). C'est expérimental, et ne peut être utilisé que si le <code> dom.indexedDB.experimental </code> pref est réglé sur <code> true </code> dans <code> about:config.</code></p> - - <div class="note"><p><strong>Note :</strong> Depuis Firefox 40, les transactions IndexedDB diminuent en efficacité pour gagner en efficience (voir {{Bug ( "1112702")}}.) Auparavant, dans une transaction en <code><a href="#const_read_write">readwrite</a></code> l'événement complete était déclanché seulement lorsque toutes les données étaient écrites sur le disque. Maintenant l'événement <code>complete</code> est déclenché après que l'OS ai envoyé l'ordre d'écrire les données, mais potentiellement avant qu'elles aient été écrites sur le disque. L'événement <code>complete</code> peut ainsi se déclancher plus rapidement qu'auparavant, cependant, il existe une chance infime pour que l'ensemble de la transaction soit perdue si le système d'exploitation plante ou s'il y a une perte de courant avant que les données aient été écites sur le disque. Étant donné que ces événements catastrophiques sont rares la plupart des utilisateurs ne devraient pas avoir à s'en préoccuper davantage.</p></div> - </td> - </tr> - </tbody> - </table> - <p>Pour éviter des pertes de performance, n’utilisez le mode <code>readwrite</code> que si vous avez effectivement besoin d’écrire ou de mettre à jour des données sur la base.")}} Si on a besoin d’accéder à un magasin d'objets pour écrire ou mettre à jour des enregistrement, on utilise la sytaxe:</p> - <pre class="brush:js">var transaction = db.transaction('monMagasin','readwrite');</pre> - </dd> -</dl> - -<h2 id="Renvoie">Renvoie</h2> - -<p>Une {{domxref("IDBTransaction","transaction")}}.</p> - -<h2 id="Exceptions">Exceptions</h2> - -<dl> - <dt><code>InvalidStateError</code></dt> - <dd>Cette {{domxref("DOMException","exception")}} est levée si la méthode <code>close()</code> a été appelée sur cette connexion à la base de donnée.</dd> - <dt><code>NotFoundError</code></dt> - <dd>Cette {{domxref("DOMException","exception")}} est levée si un magasin d'objets indiqué dans le paramètre <code>storeNames</code> n'existe pas ou plus.</dd> - <dt><code>TypeError</code></dt> - <dd>Cette {{domxref("DOMException","exception")}} est levée si la valeur du paramètre <code>mode</code> n'est pas valide.</dd> - <dt><code>InvalidAccessError</code></dt> - <dd>Cette {{domxref("DOMException","exception")}} est levée si la liste passée à <code>storeNames</code> est vide</dd> -</dl> - -<h2 id="Exemple">Exemple</h2> - -<p>Dans cet exemple, on ouvre simplement une connexion à la base de donnée puis une transaction sur cette connexion.</p> - -<pre class="brush: js">var db; +{{ APIRef("IndexedDB") }} + +La méthode **`transaction`** de l'interface {{domxref("IDBDatabase")}} renvoie une {{domxref("IDBTransaction","transaction")}} sur laquelle on peut appeler la méthode {{domxref("IDBTransaction.objectStore")}} pour accéder aux magasins d'objets de la base de donnée. + +{{AvailableInWorkers}} + +## Syntaxe + +```js +var transaction = db.transaction(storeNames, mode); +``` + +## Paramètres + +- storeNames + + - : un tableau de noms de magasins d'objets entrant dans le cadre de cette transaction. Indique seulement les magasins d'objets dont on a besoin. Si l’on n’a besoin que d’un seul magasin d'objet, on peut simplement passer son nom. Les lignes suivantes sont équivalentes : + + ```js + var transaction = db.transaction(['my-store-name']); + var transaction = db.transaction('my-store-name'); + ``` + + Pour utiliser tous les magasins d'objets de la base de donnée, on peut appeler la methode {{domxref("IDBDatabase.objectStoreNames")}}: + + ```js + var transaction = db.transaction(db.objectStoreNames); + ``` + + Passer un tableau vide lèvera une exception. + +- mode {{optional_inline}} + + - : Le {{domxref("IDBTransactionMode","mode")}} d’{{domxref("IDBObjectStore","accès aux magasins d'objets")}} à la base de données (par default `readonly`): + + <table class="standard-table"> + <thead> + <tr> + <th scope="col">Valeur</th> + <th scope="col">Explication</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>readonly</code></td> + <td> + permet de prendre des objets dans les magasins d'objets, de lire les + index et de faire des curseurs. + </td> + </tr> + <tr> + <td><code>readwrite</code></td> + <td> + Permet en plus de que l'on peut faire en readonly, d’ajouter et mettre à + jour des objets dans les magasins d'objets. + </td> + </tr> + <tr> + <td><code>versionchange</code></td> + <td> + Permet toute les opérations, y compris celles qui suppriment ou ajoutent + des {{domxref("IDBOjectStore","magasins d'objets")}} ou + des {{domxref("IDBIndex","index")}}. Ce mode met à jour le + numéro de version de la base de données, il se sert au début de + {{domxref ("IDBDatabase.setVersion")}}. Les + {{domxref("IDBTransaction","transactions")}} dans ce + mode ne peuvent pas fonctionner en même temps que d'autres. + </td> + </tr> + <tr> + <td><code>readwriteflush</code></td> + <td> + <p> + Si vous devez vous assurer de l'efficacité d'une transaction pour une + raison quelconque (par exemple, vous stockez des données critiques qui + ne peuvent être recalculées plus tard), vous pouvez forcer + l’enregistrement complet sur disque avant de déclencher l’événement + <code>complete</code> en utilisant le mode + <code>readwriteflush</code> (non standard) expérimental ( voir + {{domxref("IDBDatabase.transaction")}} ). C'est + expérimental, et ne peut être utilisé que si le + <code>dom.indexedDB.experimental </code>pref est réglé sur + <code>true </code>dans <code>about:config.</code> + </p> + <div class="note"> + <p> + <strong>Note :</strong> Depuis Firefox 40, les transactions + IndexedDB diminuent en efficacité pour gagner en efficience (voir + {{Bug ( "1112702")}}.) Auparavant, dans une transaction en + <code><a href="#const_read_write">readwrite</a></code> l'événement + complete était déclanché seulement lorsque toutes les données + étaient écrites sur le disque. Maintenant l'événement + <code>complete</code> est déclenché après que l'OS ai envoyé l'ordre + d'écrire les données, mais potentiellement avant qu'elles aient été + écrites sur le disque. L'événement <code>complete</code> peut ainsi + se déclancher plus rapidement qu'auparavant, cependant, il existe + une chance infime pour que l'ensemble de la transaction soit perdue + si le système d'exploitation plante ou s'il y a une perte de courant + avant que les données aient été écites sur le disque. Étant donné + que ces événements catastrophiques sont rares la plupart des + utilisateurs ne devraient pas avoir à s'en préoccuper davantage. + </p> + </div> + </td> + </tr> + </tbody> + </table> + + Pour éviter des pertes de performance, n’utilisez le mode `readwrite` que si vous avez effectivement besoin d’écrire ou de mettre à jour des données sur la base.")}} Si on a besoin d’accéder à un magasin d'objets pour écrire ou mettre à jour des enregistrement, on utilise la sytaxe: + + ```js + var transaction = db.transaction('monMagasin','readwrite'); + ``` + +## Renvoie + +Une {{domxref("IDBTransaction","transaction")}}. + +## Exceptions + +- `InvalidStateError` + - : Cette {{domxref("DOMException","exception")}} est levée si la méthode `close()` a été appelée sur cette connexion à la base de donnée. +- `NotFoundError` + - : Cette {{domxref("DOMException","exception")}} est levée si un magasin d'objets indiqué dans le paramètre `storeNames` n'existe pas ou plus. +- `TypeError` + - : Cette {{domxref("DOMException","exception")}} est levée si la valeur du paramètre `mode` n'est pas valide. +- `InvalidAccessError` + - : Cette {{domxref("DOMException","exception")}} est levée si la liste passée à `storeNames` est vide + +## Exemple + +Dans cet exemple, on ouvre simplement une connexion à la base de donnée puis une transaction sur cette connexion. + +```js +var db; // Connexion à la base de donnée var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function(event) { - note.innerHTML += '<li>Base de donnée initialisée.</li>'; + note.innerHTML += '<li>Base de donnée initialisée.</li>'; // affecte la connexion à la variable db db = DBOpenRequest.result; @@ -104,49 +158,36 @@ var transaction = db.transaction(["toDoList"], "readwrite"); // affiche le succès de l'ouverture de la transaction transaction.oncomplete = function(event) { - note.innerHTML += '<li>Fin de transaction: les modifications sur la base de donnée sont terminées.</li>'; + note.innerHTML += '<li>Fin de transaction: les modifications sur la base de donnée sont terminées.</li>'; }; transaction.onerror = function(event) { - note.innerHTML += '<li>La transaction n'a pas pu être initiée.</li>'; + note.innerHTML += '<li>La transaction n'a pas pu être initiée.</li>'; }; // On peut maintenant accéder au magasin d'objet var objectStore = transaction.objectStore("toDoList"); -// etc.</pre> - -<div class="note"><p><strong>Note :</strong>Pour un exemple de travail complet, voir notre <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> app (<a href="http://mdn.github.io/to-do-notifications/">view example live</a>).</p> -</div> - -<h2 id="Spécification">Spécification</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-transaction-IDBTransaction-DOMString-sequence-DOMString--storeNames-IDBTransactionMode-mode', 'transaction()')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.transaction")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{domxref("IndexedDB_API.Using_IndexedDB","Utiliser IndexedDB")}}</li> - <li>{{domxref("IDBDatabase","Débuter une connexion")}}</li> - <li>{{domxref("IDBTransaction","Utilisé les transactions")}}</li> - <li>{{domxref("IDBKeyRange","Définir l'intervalle des clés")}}</li> - <li>{{domxref("IDBObjectStore","Accès aux magasins d'objets")}}</li> - <li>{{domxref("IDBCursor","Utiliser les curseur")}}</li> - <li>Exemple de référence: <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a> (<a href="http://mdn.github.io/to-do-notifications/">view example live</a>.)</li> -</ul> +// etc. +``` + +> **Note :**Pour un exemple de travail complet, voir notre [To-do Notifications](https://github.com/mdn/to-do-notifications/) app ([view example live](http://mdn.github.io/to-do-notifications/)). + +## Spécification + +| Spécification | Statut | Commentaire | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------- | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-transaction-IDBTransaction-DOMString-sequence-DOMString--storeNames-IDBTransactionMode-mode', 'transaction()')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.transaction")}} + +## Voir aussi + +- {{domxref("IndexedDB_API.Using_IndexedDB","Utiliser IndexedDB")}} +- {{domxref("IDBDatabase","Débuter une connexion")}} +- {{domxref("IDBTransaction","Utilisé les transactions")}} +- {{domxref("IDBKeyRange","Définir l'intervalle des clés")}} +- {{domxref("IDBObjectStore","Accès aux magasins d'objets")}} +- {{domxref("IDBCursor","Utiliser les curseur")}} +- Exemple de référence: [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) ([view example live](http://mdn.github.io/to-do-notifications/).) diff --git a/files/fr/web/api/idbdatabase/version/index.md b/files/fr/web/api/idbdatabase/version/index.md index 81289060e2..33c35d6c53 100644 --- a/files/fr/web/api/idbdatabase/version/index.md +++ b/files/fr/web/api/idbdatabase/version/index.md @@ -9,69 +9,58 @@ tags: - Reference translation_of: Web/API/IDBDatabase/version --- -<div>{{APIRef("IndexedDB")}}</div> +{{APIRef("IndexedDB")}} -<p>La propriété <strong><code>version</code></strong>, rattachée à l'interface {{domxref("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.</p> +La propriété **`version`**, rattachée à l'interface {{domxref("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. -<p>{{AvailableInWorkers}}</p> +{{AvailableInWorkers}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox">db.version</pre> + db.version -<h3 id="Valeur">Valeur</h3> +### Valeur -<p>Un entier qui contient la version de la base de données à laquelle on est connecté.</p> +Un entier qui contient la version de la base de données à laquelle on est connecté. -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">// On ouvre la base de données +```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>'; + 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>'; + 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); -};</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('IndexedDB', '#widl-IDBDatabase-version', 'version')}}</td> - <td>{{Spec2('IndexedDB')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("api.IDBDatabase.version")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a href="/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB">Utiliser IndexedDB</a></li> - <li>Initier une connexion : {{domxref("IDBDatabase")}}</li> - <li>Utiliser les transactions : {{domxref("IDBTransaction")}}</li> - <li>Définir un intervalle de clés : {{domxref("IDBKeyRange")}}</li> - <li>Récupérer et modifier les données : {{domxref("IDBObjectStore")}}</li> - <li>Utiliser les curseurs {{domxref("IDBCursor")}}</li> - <li>Exemple de référence : <a href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a> (<a href="https://mdn.github.io/to-do-notifications/">exemple <em>live</em></a>).</li> -</ul> +}; +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ------------ | +| {{SpecName('IndexedDB', '#widl-IDBDatabase-version', 'version')}} | {{Spec2('IndexedDB')}} | | + +## Compatibilité des navigateurs + +{{Compat("api.IDBDatabase.version")}} + +## Voir aussi + +- [Utiliser IndexedDB](/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB) +- Initier une connexion : {{domxref("IDBDatabase")}} +- Utiliser les transactions : {{domxref("IDBTransaction")}} +- Définir un intervalle de clés : {{domxref("IDBKeyRange")}} +- Récupérer et modifier les données : {{domxref("IDBObjectStore")}} +- Utiliser les curseurs {{domxref("IDBCursor")}} +- Exemple de référence : [To-do Notifications](https://github.com/mdn/to-do-notifications/tree/gh-pages) ([exemple _live_](https://mdn.github.io/to-do-notifications/)). |