diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
| commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
| tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/fr/mozilla/add-ons/sdk/high-level_apis/indexed-db/index.html | |
| parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
| download | translated-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.html | 166 |
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. < br></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> |
