aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/idbtransaction/index.md
diff options
context:
space:
mode:
authorjulieng <julien.gattelier@gmail.com>2021-10-02 17:20:24 +0200
committerSphinxKnight <SphinxKnight@users.noreply.github.com>2021-10-02 17:30:20 +0200
commit1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde (patch)
tree30a56efd3eff3a01bd1611e1840fdbbfacf544a4 /files/fr/web/api/idbtransaction/index.md
parentc05efa8d7ae464235cf83d7c0956e42dc6974103 (diff)
downloadtranslated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.gz
translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.bz2
translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.zip
convert content to md
Diffstat (limited to 'files/fr/web/api/idbtransaction/index.md')
-rw-r--r--files/fr/web/api/idbtransaction/index.md204
1 files changed, 99 insertions, 105 deletions
diff --git a/files/fr/web/api/idbtransaction/index.md b/files/fr/web/api/idbtransaction/index.md
index b856029dee..7fc9a104d3 100644
--- a/files/fr/web/api/idbtransaction/index.md
+++ b/files/fr/web/api/idbtransaction/index.md
@@ -9,107 +9,113 @@ tags:
- Reference
translation_of: Web/API/IDBTransaction
---
-<div>{{APIRef("IndexedDB")}}</div>
+{{APIRef("IndexedDB")}}
-<p>L'interface <strong><code>IDBTransaction</code></strong> de l'<a href="/fr/docs/Web/API/API_IndexedDB">API IndexedDB</a> fournit une transaction statique asynchrone vers une base de données grâce à des attributs de gestion d'évènementns. Toutes les opérations de lecture et d'écriture de données sont effectuées au sein de transaction. Il est possible d'utiliser {{domxref("IDBDatabase")}} afin d'initier des transactions puis {{domxref("IDBTransaction")}} afin de paramétrer le mode de la transaction (c'est-à-dire s'il est en lecture seule ou en lecture/écriture) et d'accéder à un objet {{domxref("IDBObjectStore")}} pour réaliser une requête. On peut également utiliser <code>IDBTransaction</code> pour interrompre une requête.</p>
+L'interface **`IDBTransaction`** de l'[API IndexedDB](/fr/docs/Web/API/API_IndexedDB) fournit une transaction statique asynchrone vers une base de données grâce à des attributs de gestion d'évènementns. Toutes les opérations de lecture et d'écriture de données sont effectuées au sein de transaction. Il est possible d'utiliser {{domxref("IDBDatabase")}} afin d'initier des transactions puis {{domxref("IDBTransaction")}} afin de paramétrer le mode de la transaction (c'est-à-dire s'il est en lecture seule ou en lecture/écriture) et d'accéder à un objet {{domxref("IDBObjectStore")}} pour réaliser une requête. On peut également utiliser `IDBTransaction` pour interrompre une requête.
-<p>S'il vous garantir une certaine longévité (par exemple si on utilise des données critiques qui ne peuvent pas être recalculées par la suite), il est possible d'écrire le contenu de la transaction sur le disque avant la diffusion de l'évènement <code>complete</code> grâce au mode expérimental non-standard <code>readwriteflush</code> (cf. {{domxref("IDBDatabase.transaction")}}).</p>
+S'il vous garantir une certaine longévité (par exemple si on utilise des données critiques qui ne peuvent pas être recalculées par la suite), il est possible d'écrire le contenu de la transaction sur le disque avant la diffusion de l'évènement `complete` grâce au mode expérimental non-standard `readwriteflush` (cf. {{domxref("IDBDatabase.transaction")}}).
-<p>On notera qu'une transaction commence dès sa création et pas lorsque la première requête est lancée. Par exemple :</p>
+On notera qu'une transaction commence dès sa création et pas lorsque la première requête est lancée. Par exemple :
-<pre class="brush: js">var trans1 = db.transaction("toto", "readwrite");
+```js
+var trans1 = db.transaction("toto", "readwrite");
var trans2 = db.transaction("toto", "readwrite");
trans2.put("2", "clé");
trans1.put("1", "clé");
-</pre>
+```
-<p>Une fois que le code est exécuté, le magasin d'objet contiendra la valeur "2" car la transaction est lancée après la transaction <code>trans1</code>.</p>
+Une fois que le code est exécuté, le magasin d'objet contiendra la valeur "2" car la transaction est lancée après la transaction `trans1`.
-<p>{{AvailableInWorkers}}</p>
+{{AvailableInWorkers}}
-<h2 id="Méthodes">Méthodes</h2>
+## Méthodes
-<p>Cette interface hérite de {{domxref("EventTarget")}}.</p>
+Cette interface hérite de {{domxref("EventTarget")}}.
-<dl>
- <dt>{{domxref("IDBTransaction.abort")}}</dt>
- <dd>Cette méthode annule les modifications apportées aux objets associés à cette transaction. Si la transaction a déjà été interrompue ou est terminée, cette méthode déclenchera un évènement d'erreur.</dd>
- <dt>{{domxref("IDBTransaction.objectStore")}}</dt>
- <dd>Cette méthode renvoie un objet {{domxref("IDBObjectStore")}} qui représente le magasin d'objet associé à cette transaction.</dd>
-</dl>
+- {{domxref("IDBTransaction.abort")}}
+ - : Cette méthode annule les modifications apportées aux objets associés à cette transaction. Si la transaction a déjà été interrompue ou est terminée, cette méthode déclenchera un évènement d'erreur.
+- {{domxref("IDBTransaction.objectStore")}}
+ - : Cette méthode renvoie un objet {{domxref("IDBObjectStore")}} qui représente le magasin d'objet associé à cette transaction.
-<h2 id="Propriétés">Propriétés</h2>
+## Propriétés
-<dl>
- <dt>{{domxref("IDBTransaction.db")}} {{readonlyInline}}</dt>
- <dd>La connexion à la base de données associée à cette transaction.</dd>
- <dt>{{domxref("IDBTransaction.mode")}} {{readonlyInline}}</dt>
- <dd>Le mode de la transaction qui définit la façon dont on accède/modifie les données. Les différentes valeurs sont définies ci-après dans la section Constante. Par défaut, la valeur est <code>readonly</code>.</dd>
- <dt>{{domxref("IDBTransaction.objectStoreNames")}} {{readonlyinline}}</dt>
- <dd>Cette propriété est une liste ({{domxref("DOMStringList")}}) des noms des objets {{domxref("IDBObjectStore")}}.</dd>
- <dt>{{domxref("IDBTransaction.error")}} {{readonlyInline}}</dt>
- <dd>Cette propriété renvoie le type de l'erreur qui se produit lorsque la transaction infructueuse. Cette propriété vaut <code>null</code> si la transaction n'est pas finie, est finie et validée correctement ou a été cloturée avec la fonction{{domxref("IDBTransaction.abort")}}.</dd>
-</dl>
+- {{domxref("IDBTransaction.db")}} {{readonlyInline}}
+ - : La connexion à la base de données associée à cette transaction.
+- {{domxref("IDBTransaction.mode")}} {{readonlyInline}}
+ - : Le mode de la transaction qui définit la façon dont on accède/modifie les données. Les différentes valeurs sont définies ci-après dans la section Constante. Par défaut, la valeur est `readonly`.
+- {{domxref("IDBTransaction.objectStoreNames")}} {{readonlyinline}}
+ - : Cette propriété est une liste ({{domxref("DOMStringList")}}) des noms des objets {{domxref("IDBObjectStore")}}.
+- {{domxref("IDBTransaction.error")}} {{readonlyInline}}
+ - : Cette propriété renvoie le type de l'erreur qui se produit lorsque la transaction infructueuse. Cette propriété vaut `null` si la transaction n'est pas finie, est finie et validée correctement ou a été cloturée avec la fonction{{domxref("IDBTransaction.abort")}}.
-<h3 id="Gestionnaires_d'évènements">Gestionnaires d'évènements</h3>
+### Gestionnaires d'évènements
-<dl>
- <dt>{{domxref("IDBTransaction.onabort")}} {{readonlyInline}}</dt>
- <dd>Ce gestionnaire permet de gérer l'évènement <code>abort</code> qui est déclenché lorsque la transaction a été interrompue.</dd>
- <dt>{{domxref("IDBTransaction.oncomplete")}} {{readonlyInline}}</dt>
- <dd>Ce gestionnaire permet de gérer l'évènement <code>complete</code> qui est  déclenché lorsque la transaction se finit correctement.</dd>
- <dt>{{domxref("IDBTransaction.onerror")}} {{readonlyInline}}</dt>
- <dd>Ce gestionnaire permet de gérer l'évènement <code>error</code> qui est déclenché lorsqu'une erreur empêche la transaction de se finir correctement.</dd>
-</dl>
+- {{domxref("IDBTransaction.onabort")}} {{readonlyInline}}
+ - : Ce gestionnaire permet de gérer l'évènement `abort` qui est déclenché lorsque la transaction a été interrompue.
+- {{domxref("IDBTransaction.oncomplete")}} {{readonlyInline}}
+ - : Ce gestionnaire permet de gérer l'évènement `complete` qui est  déclenché lorsque la transaction se finit correctement.
+- {{domxref("IDBTransaction.onerror")}} {{readonlyInline}}
+ - : Ce gestionnaire permet de gérer l'évènement `error` qui est déclenché lorsqu'une erreur empêche la transaction de se finir correctement.
-<h2 id="Les_différents_modes">Les différents modes</h2>
+## Les différents modes
-<p>Une transaction peut s'effectuer dans l'un de ces modes :</p>
+Une transaction peut s'effectuer dans l'un de ces modes :
<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Valeur</th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <p>"readonly"</p>
-
- <p>(0 dans Chrome)</p>
- </td>
- <td>Ce mode permet de lire les données mais pas de les modifier.</td>
- </tr>
- <tr>
- <td>
- <p>"readwrite"</p>
-
- <p>(1 dans Chrome)</p>
- </td>
- <td>Ce mode permet de lire, d'écrire et de modifier les données du magasin d'objets.</td>
- </tr>
- <tr>
- <td>
- <p>"versionchange"</p>
-
- <p>(2 dans Chrome)</p>
- </td>
- <td>Ce mode permet d'effectuer toutes les opérations, y compris l'ajout ou la suppression de magasins d'objets et d'index. Ce mode doit être utilisé pour mettre à jour le numéro de version utilisé par les transactions démarées avec la méthode <a href="/fr/docs/Web/API/IDBDatabase"><code>setVersion()</code></a> de <code><a href="/fr/docs/Web/API/IDBDatabase">IDBDatabase</a></code>. Les transactions lancées dans ce mode ne peuvent pas être lancées en même temps que d'autres transactions. Ces transactions sont parfois qualifiées comme « transactions de mise à jour ».</td>
- </tr>
- </tbody>
+ <thead>
+ <tr>
+ <th scope="col">Valeur</th>
+ <th scope="col">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>"readonly"</p>
+ <p>(0 dans Chrome)</p>
+ </td>
+ <td>Ce mode permet de lire les données mais pas de les modifier.</td>
+ </tr>
+ <tr>
+ <td>
+ <p>"readwrite"</p>
+ <p>(1 dans Chrome)</p>
+ </td>
+ <td>
+ Ce mode permet de lire, d'écrire et de modifier les données du magasin
+ d'objets.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>"versionchange"</p>
+ <p>(2 dans Chrome)</p>
+ </td>
+ <td>
+ Ce mode permet d'effectuer toutes les opérations, y compris l'ajout ou
+ la suppression de magasins d'objets et d'index. Ce mode doit être
+ utilisé pour mettre à jour le numéro de version utilisé par les
+ transactions démarées avec la méthode
+ <a href="/fr/docs/Web/API/IDBDatabase"><code>setVersion()</code></a> de
+ <code><a href="/fr/docs/Web/API/IDBDatabase">IDBDatabase</a></code
+ >. Les transactions lancées dans ce mode ne peuvent pas être lancées en
+ même temps que d'autres transactions. Ces transactions sont parfois
+ qualifiées comme « transactions de mise à jour ».
+ </td>
+ </tr>
+ </tbody>
</table>
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on ouvre une transaction en lecture/écriture sur la base de données et on ajoute des données dans le magasin d'objet. On notera également l'utilisation des gestionnaires d'évènements attachés à la transaction qui permettent d'indiquer la réussite ou l'échec de l'ouverture de la transaction. Pour un exemple complet, voir <a href="https://github.com/mdn/to-do-notifications/">l'application de notifications To-do</a> (<a href="https://mdn.github.io/to-do-notifications/">voir également la démonstration <em>live</em></a>)</p>
+Dans l'exemple qui suit, on ouvre une transaction en lecture/écriture sur la base de données et on ajoute des données dans le magasin d'objet. On notera également l'utilisation des gestionnaires d'évènements attachés à la transaction qui permettent d'indiquer la réussite ou l'échec de l'ouverture de la transaction. Pour un exemple complet, voir [l'application de notifications To-do](https://github.com/mdn/to-do-notifications/) ([voir également la démonstration _live_](https://mdn.github.io/to-do-notifications/))
-<pre class="brush: js">// On commence par ouvrir la base de données
+```js
+// On commence par ouvrir la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = function(event) {
- note.innerHTML += '&lt;li&gt;Initialisation de la base.&lt;/li&gt;';
+ note.innerHTML += '<li>Initialisation de la base.</li>';
// On enregistre le résultat de l'ouverture
// dans la variable db afin de l'utiliser
@@ -133,12 +139,12 @@ function addData() {
// On indique le succès de la transaction
transaction.oncomplete = function(event) {
- note.innerHTML += '&lt;li&gt;Transaction terminée : modification finie.&lt;/li&gt;';
+ note.innerHTML += '<li>Transaction terminée : modification finie.</li>';
};
transaction.onerror = function(event) {
- note.innerHTML += '&lt;li&gt;Transaction non-ouverte à cause d'une erreur. Les doublons ne sont pas autorisés.&lt;/li&gt;';
+ note.innerHTML += '<li>Transaction non-ouverte à cause d'une erreur. Les doublons ne sont pas autorisés.</li>';
};
// On crée un magasin d'objet pour la transaction
@@ -150,39 +156,27 @@ function addData() {
objectStoreRequest.onsuccess = function(event) {
// On indique le succès de l'ajout de l'objet
// dans la base de données
- note.innerHTML += '&lt;li&gt;Un nouvel élément a été ajouté dans la base de données.&lt;/li&gt;';
+ note.innerHTML += '<li>Un nouvel élément a été ajouté dans la base de données.</li>';
};
-};</pre>
+};
+```
-<h2 id="Spécifications">Spécifications</h2>
+## Spécifications
-<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', '#transaction', 'IDBTransaction')}}</td>
- <td>{{Spec2('IndexedDB')}}</td>
- <td>Définition initiale</td>
- </tr>
- </tbody>
-</table>
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------- | ---------------------------- | ------------------- |
+| {{SpecName('IndexedDB', '#transaction', 'IDBTransaction')}} | {{Spec2('IndexedDB')}} | Définition initiale |
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+## Compatibilité des navigateurs
-<p>{{Compat("api.IDBTransaction")}}</p>
+{{Compat("api.IDBTransaction")}}
-<h2 id="Voir_aussi">Voir aussi</h2>
+## Voir aussi
-<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>
+- [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/)).