From c05efa8d7ae464235cf83d7c0956e42dc6974103 Mon Sep 17 00:00:00 2001 From: julieng Date: Sat, 2 Oct 2021 17:20:14 +0200 Subject: move *.html to *.md --- files/fr/web/api/idbobjectstore/put/index.md | 150 +++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 files/fr/web/api/idbobjectstore/put/index.md (limited to 'files/fr/web/api/idbobjectstore/put/index.md') diff --git a/files/fr/web/api/idbobjectstore/put/index.md b/files/fr/web/api/idbobjectstore/put/index.md new file mode 100644 index 0000000000..f4c51928b1 --- /dev/null +++ b/files/fr/web/api/idbobjectstore/put/index.md @@ -0,0 +1,150 @@ +--- +title: IDBObjectStore.put() +slug: Web/API/IDBObjectStore/put +tags: + - API + - IDBObjectStore + - IndexedDB + - Méthode + - Reference +translation_of: Web/API/IDBObjectStore/put +--- +
{{APIRef("IndexedDB")}}
+ +

La méthode put(), rattachée à l'interface {{domxref("IDBObjectStore")}}, renvoie un objet {{domxref("IDBRequest")}} et, dans un autre thread, crée un clone structuré de la valeur puis enregistre ce clone dans le magasin d'objet. Cette méthode permet ainsi d'ajouter de nouveaux enregistrements ou de mettre à jour des enregistrements existants dans un magasin d'objet lorsque la transaction est en mode readwrite (lecture-écriture)

+ +

Si l'enregistrement est stocké avec succès, un évènement de succès sera déclenché sur la requête renvoyée par la méthode. La propriété result de cette requête contiendra la clé de l'enregistrement créé ou mis à jour. La propriété transaction de cette requête sera la transaction dans laquelle le magasin d'objet est ouvert.

+ +

La méthode put() permet d'ajouter ou de mettre à jour. Si on souhaite uniquement insérer, on utilisera plutôt {{domxref("IDBObjectStore.add")}}.

+ +

{{AvailableInWorkers}}

+ +

Syntaxe

+ +
var request = objectStore.put(monElement);
+var request = objectStore.put(monElement, cleOptionnelle);
+ +

Paramètres

+ +
+
monElement
+
La valeur qu'on souhaite enregistrer.
+
cleOptionnelle {{optional_inline}}
+
La clé qu'on souhaite utiliser pour identifier l'enregistrement. Si cet argument est absent, la valeur par défaut sera {{jsxref("null")}}.
+
+ +

Valeur de retour

+ +

Un objet {{domxref("IDBRequest")}} qui recevra les évènements qui seront déclenchés suite à cette opération.

+ +

Exceptions

+ +

Cette méthode peut lever une de ces exceptions {{domxref("DOMException")}} :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionDescription
ReadOnlyErrorLa transaction associée à l'opération est uniquement dans un mode de lecture seule.
TransactionInactiveErrorLa transaction rattachée à l'objet {{domxref("IDBObjectStore")}} est inactive.
DataError +

L'une de ces conditions est vérifiée :

+ +
    +
  • Le magasin d'objet utilise des clés en ligne (in-line keys) ou dispose d'un générateur de clés et le paramètre pour la clé a été utilisé.
  • +
  • Le magasin d'objet utilise des clés en ligne (in-line keys), ne  dispose pas d'un générateur de clés et le paramètre pour la clé n'a pas été utilisé.
  • +
  • Le magasin d'objet utilise des clés en ligne (in-line keys), ne  dispose pas d'un générateur de clés et le chemin de clé du magasin d'objet ne déclenche pas une clé valide.
  • +
  • Le paramètre pour la clé a été fourni mais la valeur n'est pas une clé valide.
  • +
+
InvalidStateErrorL'objet {{domxref("IDBObjectStore")}} a été supprimé ou déplacé.
DataCloneErrorLes données à enregistrer n'ont pas pu être clonées par l'algorithme interne.
+ +

Exemples

+ +

Dans l'exemple suivant, on effectue une requête pour obtenir l'enregistrement correspondant à un titre donné. Lorsque cette requête est réussie, on récupère l'enregistrement via la fonction onsuccess. Ensuite, on met à jour une des propriétés de l'enregistrement et on enregistre la valeur mise à jour dans le magasin d'objet avec une autre requête et put().

+ +
var title = "Walk dog";
+
+// On ouvre une transaction
+var objectStore = db.transaction(['toDoList'], "readwrite").objectStore('toDoList');
+
+// On obtient la liste to-do dont le titre correspond
+var objectStoreTitleRequest = objectStore.get(title);
+
+objectStoreTitleRequest.onsuccess = function() {
+  // On récupère les données de l'objet associé
+  // à l'enregistrement
+  var data = objectStoreTitleRequest.result;
+
+  // On met à jour la valeur de notified avec "yes"
+  data.notified = "yes";
+
+  // On crée une autre requête pour appliquer cette
+  // mise à jour en base de données
+  var updateTitleRequest = objectStore.put(data);
+
+  // On imprime la transaction à l'origine
+  // de la requête
+  console.log("La transaction originelle est " + updateTitleRequest.transaction);
+
+  // Lorsque cette nouvelle requête a réussi. On affiche
+  // les données grâce à la fonction displayData()
+  updateTitleRequest.onsuccess = function() {
+    displayData();
+  };
+};
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('IndexedDB', '#widl-IDBObjectStore-put-IDBRequest-any-value-any-key', 'put()')}}{{Spec2('IndexedDB')}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("api.IDBObjectStore.put")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf