aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html')
-rw-r--r--files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html166
1 files changed, 166 insertions, 0 deletions
diff --git a/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html b/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
new file mode 100644
index 0000000000..4a73e29e98
--- /dev/null
+++ b/files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html
@@ -0,0 +1,166 @@
+---
+title: indexed-db
+slug: Mozilla/Add-ons/SDK/High-Level_APIs/indexed-db
+translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/indexed-db
+---
+<p>{{AddonSidebar}}</p>
+
+<div class="note">
+<p>Expérimental</p>
+</div>
+
+<p><span class="seoSummary">Expose l'<a href="https://developer.mozilla.org/fr/docs/IndexedDB" title="https://developer.mozilla.org/fr/docs/IndexedDB">API IndexedDB</a> pour les add-ons.</span></p>
+
+<h2 id="Utilisation">Utilisation</h2>
+
+<p>Les scripts en cours d'exécution dans les pages Web peuvent accéder à IndexedDB via <code>window</code>. Par exemple:</p>
+
+<pre class="brush: js">window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
+
+var request = window.indexedDB.open("MyDatabase");
+request.onerror = function(event) {
+ console.log("failure");
+};
+request.onsuccess = function(event) {
+ console.log("success");
+};</pre>
+
+<p>Parce que votre code add-on principale ne peut pas accéder au DOM, vous ne pouvez pas faire cela. Mais vous pouvez utiliser le module <code>indexed-db</code> pour y accéder:</p>
+
+<pre class="brush: js">var { indexedDB } = require('sdk/indexed-db');
+
+var request = indexedDB.open('MyDatabase');
+request.onerror = function(event) {
+ console.log("failure");
+};
+request.onsuccess = function(event) {
+ console.log("success");
+};</pre>
+
+<p>La plupart des objets qui mettent en œuvre l'API IndexedDB, tels que <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBTransaction" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBTransaction"> IDBTransaction </a>, <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBOpenDBRequest" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBOpenDBRequest"> IDBOpenDBRequest </a>, et <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBObjectStore" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBObjectStore"> IDBObjectStore </a>, sont accessibles à travers l'objet IndexedDB lui-même. &lt; br&gt;</p>
+
+<p>L'API exposée par <code>indexed-db</code> est presque identique à l'API DOM IndexedDB, donc on n'a pas répété sa documentation ici, référer vous à la <a href="https://developer.mozilla.org/fr/docs/IndexedDB" title="https://developer.mozilla.org/fr/docs/IndexedDB">documentation de l'API IndexedDB</a> pour tous les détails.</p>
+
+<p>La base de données créé sera unique et privée pour l'add-on, et n'est pas liés à une base de données de site. Le module ne peut pas être utilisé pour interagir avec une base de données du site donné. Voir <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=779197" title="https://bugzilla.mozilla.org/show_bug.cgi?id=779197"> bug 778197 </a> et <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=786688" title="https://bugzilla.mozilla.org/show_bug.cgi?id=786688"> bug 786688 </a>.</p>
+
+<h3 id="Exemple">Exemple</h3>
+
+<div class="note">
+<p>Cet exemple utilise l'<a href="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action" title="https://developer.mozilla.org/fr/Add-ons/SDK/Low-Level_APIs/ui_button_action">API bouton d'action </a>, qui est uniquement disponible à partir de Firefox 29 partir.</p>
+</div>
+
+<p>Voici un add-on complet qui ajoute deux boutons pour le navigateur: le bouton "Ajouter" ajoute le titre de l'onglet en cours à une base de données, tandis que le bouton intitulé «Liste» répertorie tous les titres dans la base de données .</p>
+
+<p>L'add-on implémente les fonctions <code>open()</code>, <code>addItem()</code> et <code>getItems()</code> pour ouvrir la base de données, ajouter un nouvel élément à la base de données, et d'obtenir tous les éléments de la base de données.</p>
+
+<pre class="brush: js">var { indexedDB, IDBKeyRange } = require('sdk/indexed-db');
+
+var database = {};
+
+database.onerror = function(e) {
+  console.error(e.value)
+}
+
+function open(version) {
+  var request = indexedDB.open("stuff", version);
+
+  request.onupgradeneeded = function(e) {
+    var db = e.target.result;
+    e.target.transaction.onerror = database.onerror;
+
+    if(db.objectStoreNames.contains("items")) {
+      db.deleteObjectStore("items");
+    }
+
+    var store = db.createObjectStore("items",
+      {keyPath: "time"});
+  };
+
+  request.onsuccess = function(e) {
+    database.db = e.target.result;
+  };
+
+  request.onerror = database.onerror;
+};
+
+function addItem(name) {
+  var db = database.db;
+  var trans = db.transaction(["items"], "readwrite");
+  var store = trans.objectStore("items");
+  var time = new Date().getTime();
+  var request = store.put({
+    "name": name,
+    "time": time
+  });
+
+  request.onerror = database.onerror;
+};
+
+function getItems(callback) {
+  var cb = callback;
+  var db = database.db;
+  var trans = db.transaction(["items"], "readwrite");
+  var store = trans.objectStore("items");
+  var items = new Array();
+
+  trans.oncomplete = function() {
+    cb(items);
+  }
+
+  var keyRange = IDBKeyRange.lowerBound(0);
+  var cursorRequest = store.openCursor(keyRange);
+
+  cursorRequest.onsuccess = function(e) {
+    var result = e.target.result;
+    if(!!result == false)
+      return;
+
+    items.push(result.value.name);
+    result.continue();
+  };
+
+  cursorRequest.onerror = database.onerror;
+};
+
+function listItems(itemList) {
+  console.log(itemList);
+}
+
+open("1");
+
+var add = require("sdk/ui/button/action").ActionButton({
+  id: "add",
+  label: "Add",
+  icon: "./add.png",
+  onClick: function() {
+    addItem(require("sdk/tabs").activeTab.title);
+  }
+});
+
+var list = require("sdk/ui/button/action").ActionButton({
+  id: "list",
+  label: "List",
+  icon: "./list.png",
+  onClick: function() {
+    getItems(listItems);
+  }
+});
+</pre>
+
+<p>Notez que pour exécuter cet add-on, vous aurez besoin de fournir des icônes nommées "add.png" et "list.png" dans le répertoire "data" de l'add-ons .</p>
+
+<h2 id="Globals">Globals</h2>
+
+<h3 id="Propriétés">Propriétés</h3>
+
+<h4 class="addon-sdk-api-name" id="indexedDB"><code>indexedDB</code></h4>
+
+<p>Permet de créer, ouvrir et supprimer des bases de données. Voir la <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBFactory" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBFactory"> documentation IDBFactory</a>.</p>
+
+<h4 class="addon-sdk-api-name" id="IDBKeyRange"><code>IDBKeyRange</code></h4>
+
+<p>Définit une plage de clés. Voir la <a href="https://developer.mozilla.org/fr/docs/IndexedDB/IDBKeyRange" title="https://developer.mozilla.org/fr/docs/IndexedDB/IDBKeyRange"> documentation IDBKeyRange</a>.</p>
+
+<h4 class="addon-sdk-api-name" id="DOMException"><code>DOMException</code></h4>
+
+<p>Fournit des informations plus détaillées sur une exception. Voir la <a href="https://developer.mozilla.org/fr/docs/DOM/DOMException" title="https://developer.mozilla.org/fr/docs/DOM/DOMException"> documentation DOMException</a>.</p>