--- title: IDBDatabase.transaction() slug: Web/API/IDBDatabase/transaction translation_of: Web/API/IDBDatabase/transaction --- {{ 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`):
Valeur | Explication |
---|---|
readonly |
permet de prendre des objets dans les magasins d'objets, de lire les index et de faire des curseurs. |
readwrite |
Permet en plus de que l'on peut faire en readonly, d’ajouter et mettre à jour des objets dans les magasins d'objets. |
versionchange |
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. |
readwriteflush |
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
Note : Depuis Firefox 40, les transactions
IndexedDB diminuent en efficacité pour gagner en efficience (voir
{{Bug ( "1112702")}}.) Auparavant, dans une transaction en
|