From 522984283b56b68582d606c76e4ca98c0baf9451 Mon Sep 17 00:00:00 2001 From: MDN Date: Tue, 15 Jun 2021 00:35:40 +0000 Subject: [CRON] sync translated content --- files/fr/_redirects.txt | 10 +- files/fr/_wikihistory.json | 34 ++-- .../basic_concepts_behind_indexeddb/index.html | 210 +++++++++++++++++++++ .../typed_array_invalid_arguments/index.html | 77 ++++++++ .../basic_concepts_behind_indexeddb/index.html | 210 --------------------- .../typed_array_invalid_arguments/index.html | 77 -------- 6 files changed, 310 insertions(+), 308 deletions(-) create mode 100644 files/fr/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html create mode 100644 files/fr/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html delete mode 100644 files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html delete mode 100644 files/fr/web/javascript/reference/errors/typed_array_invalid_arguments/index.html (limited to 'files/fr') diff --git a/files/fr/_redirects.txt b/files/fr/_redirects.txt index 660d57b046..c304f382b3 100644 --- a/files/fr/_redirects.txt +++ b/files/fr/_redirects.txt @@ -2130,9 +2130,9 @@ /fr/docs/Indentation_homogène_des_listes /fr/docs/Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation /fr/docs/IndexedDB /fr/docs/Web/API/IndexedDB_API /fr/docs/IndexedDB-840092-dup /fr/docs/Web/API/IndexedDB_API -/fr/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /fr/docs/IndexedDB/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria -/fr/docs/IndexedDB/Concepts_basiques_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/IndexedDB/Concepts_basiques_IndexedDB /fr/docs/orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /fr/docs/IndexedDB/Using_IndexedDB /fr/docs/Web/API/IndexedDB_API/Using_IndexedDB /fr/docs/Introduction_à_SVG_dans_HTML /fr/docs/Web/SVG/Tutorial/SVG_In_HTML_Introduction /fr/docs/Introduction_à_XML /fr/docs/Web/XML/XML_introduction @@ -3589,7 +3589,7 @@ /fr/docs/Web/API/API_HTML_Drag_and_Drop /fr/docs/Web/API/HTML_Drag_and_Drop_API /fr/docs/Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement /fr/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations /fr/docs/Web/API/API_IndexedDB /fr/docs/Web/API/IndexedDB_API -/fr/docs/Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/API_IndexedDB/Using_IndexedDB /fr/docs/Web/API/IndexedDB_API/Using_IndexedDB /fr/docs/Web/API/API_fichier_systeme /fr/docs/Web/API/File_and_Directory_Entries_API @@ -3789,6 +3789,7 @@ /fr/docs/Web/API/HTMLTableElement.insertRow /fr/docs/Web/API/HTMLTableElement/insertRow /fr/docs/Web/API/IDBEnvironment/indexedDB /fr/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB /fr/docs/Web/API/IDBRequest/blocked_event /fr/docs/Web/API/IDBOpenDBRequest/blocked_event +/fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /fr/docs/orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/Location.assign /fr/docs/Web/API/Location/assign /fr/docs/Web/API/Location.reload /fr/docs/Web/API/Location/reload /fr/docs/Web/API/Location.replace /fr/docs/Web/API/Location/replace @@ -4744,7 +4745,7 @@ /fr/docs/Web/JavaScript/Reference/Erreurs/Stmt_after_return /fr/docs/Web/JavaScript/Reference/Errors/Stmt_after_return /fr/docs/Web/JavaScript/Reference/Erreurs/Strict_Non_Simple_Params /fr/docs/Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params /fr/docs/Web/JavaScript/Reference/Erreurs/Too_much_recursion /fr/docs/Web/JavaScript/Reference/Errors/Too_much_recursion -/fr/docs/Web/JavaScript/Reference/Erreurs/Typed_array_invalid_arguments /fr/docs/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +/fr/docs/Web/JavaScript/Reference/Erreurs/Typed_array_invalid_arguments /fr/docs/orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments /fr/docs/Web/JavaScript/Reference/Erreurs/Undeclared_var /fr/docs/Web/JavaScript/Reference/Errors/Undeclared_var /fr/docs/Web/JavaScript/Reference/Erreurs/Undefined_prop /fr/docs/Web/JavaScript/Reference/Errors/Undefined_prop /fr/docs/Web/JavaScript/Reference/Erreurs/Unexpected_token /fr/docs/Web/JavaScript/Reference/Errors/Unexpected_token @@ -4755,6 +4756,7 @@ /fr/docs/Web/JavaScript/Reference/Erreurs/in_operator_no_object /fr/docs/Web/JavaScript/Reference/Errors/in_operator_no_object /fr/docs/Web/JavaScript/Reference/Erreurs/invalid_right_hand_side_instanceof_operand /fr/docs/Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand /fr/docs/Web/JavaScript/Reference/Erreurs/is_not_iterable /fr/docs/Web/JavaScript/Reference/Errors/is_not_iterable +/fr/docs/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments /fr/docs/orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments /fr/docs/Web/JavaScript/Reference/Fonctions /fr/docs/Web/JavaScript/Reference/Functions /fr/docs/Web/JavaScript/Reference/Fonctions/Définition_de_méthode /fr/docs/Web/JavaScript/Reference/Functions/Method_definitions /fr/docs/Web/JavaScript/Reference/Fonctions/Fonctions_fléchées /fr/docs/Web/JavaScript/Reference/Functions/Arrow_functions diff --git a/files/fr/_wikihistory.json b/files/fr/_wikihistory.json index 3316143f7c..aa4972b8c4 100644 --- a/files/fr/_wikihistory.json +++ b/files/fr/_wikihistory.json @@ -18245,17 +18245,6 @@ "moins52" ] }, - "Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB": { - "modified": "2020-03-19T07:25:26.127Z", - "contributors": [ - "ChristopheBoucaut", - "loella16", - "Alpha", - "SphinxKnight", - "teoli", - "julienw" - ] - }, "Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria": { "modified": "2019-07-09T03:14:33.430Z", "contributors": [ @@ -35289,12 +35278,6 @@ "jcletousey" ] }, - "Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": { - "modified": "2020-03-12T19:45:50.257Z", - "contributors": [ - "SphinxKnight" - ] - }, "Web/JavaScript/Reference/Errors/Undeclared_var": { "modified": "2020-03-12T19:43:41.533Z", "contributors": [ @@ -45016,6 +44999,17 @@ "loella16" ] }, + "orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB": { + "modified": "2020-03-19T07:25:26.127Z", + "contributors": [ + "ChristopheBoucaut", + "loella16", + "Alpha", + "SphinxKnight", + "teoli", + "julienw" + ] + }, "orphaned/Web/API/Notation": { "modified": "2019-03-18T21:40:13.820Z", "contributors": [ @@ -45234,6 +45228,12 @@ "Goofy" ] }, + "orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": { + "modified": "2020-03-12T19:45:50.257Z", + "contributors": [ + "SphinxKnight" + ] + }, "orphaned/Web/JavaScript/Reference/Global_Objects/WeakSet/clear": { "modified": "2020-10-15T21:30:59.712Z", "contributors": [ diff --git a/files/fr/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html b/files/fr/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html new file mode 100644 index 0000000000..70ba6ab52c --- /dev/null +++ b/files/fr/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html @@ -0,0 +1,210 @@ +--- +title: Les concepts basiques d'IndexedDB +slug: orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +tags: + - Avancé + - IndexedDB + - concepts +translation_of: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +original_slug: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +--- +

{{DefaultAPISidebar("IndexedDB")}}

+ +

IndexedDB est un moyen pour permettre le stockage de données dans le navigateur d'un utilisateur, de manière persistante. Ses fonctions de recherche avancées permettent de créer des applications qui fonctionnent tant connectées que déconnectées. IndexedDB est utile pour créer des applications qui stockent une grande quantité de données (par exemple : un catalogue de DVDs dans une bibliothèque) et des applications qui n'ont pas forcément besoin d'une connectivité Internet continue (par exemple : des clients de messagerie électronique, des listes de tâches, des bloc-notes).

+ +

À propos de ce document

+ +

Ce document introduit les concepts et les termes essentiels d'IndexedDB. Vous aurez une vue d'ensemble et vous comprendrez les concepts-clés.

+ +

Vous pourrez trouver ici :

+ + + +

Vue d'ensemble d'IndexedDB

+ +

IndexedDB vous permet de stocker et récupérer des objets qui sont indexés avec une "clé". Tous les changements que vous faites dans la base de données sont forcément transactionnels. Comme la plupart des solutions de stockage du web, IndexedDB respecte la politique de sécurité utilisant l'origne (same-origin policy). Ainsi, vous pouvez accéder aux données stockées d'un domaine, alors que vous ne pouvez pas accéder aux données de domaines différents.

+ +

IndexedDB est une API asynchrone qui peut être utilisée dans la plupart des contextes, Web Workers inclus. Elle comportait également une version synchrone prévue pour être utilisée dans des Web Workers. mais cette option a été retirée de la spécification en raison du manque d'intérêt de la communauté Web.

+ +

IndexedDB est une alternative à l'API WebSQL Database, qui a été dépréciée par le W3C le 18 novembre 2010. Alors que ces APIs sont toutes deux des solutions de stockage, elles n'offrent pas les mêmes fonctionnalités. WebSQL Database est un système d'accès à une base de données relationnelle alors qu'IndexedDB est un système de table indexée. 

+ +

Les grands concepts

+ +

Si vous avez l'habitude de travailler avec d'autres types de bases de données, vous pourrez être désorienté par l'utlisation d'IndexedDB. Mais il suffit de garder les concepts importants suivants en tête :

+ + + +

Définitions

+ +

Cette section définit et explique les termes utilisés dans l'API IndexedDB.

+ +

Database (base de données)

+ +
+
database (base de données)
+
Un référentiel d'informations, comprenant généralement un ou plusieurs objets de stockage. Chaque base de données doit avoir les éléments suivants : +
    +
  • Name . (nom) Il identifie la base de données dans une origine spécifique et reste constant tout au long de la durée de sa vie. Le nom peut être n'importe quelle valeur de chaîne de caractères (y compris une chaîne vide).
  • +
  • Current version (version actuelle). Lors de la création de la base de données, sa version est le nombre entier 1. Chaque base de données ne peut avoir qu'une seule version à un moment donné .
  • +
+
+
durable
+
Dans Firefox, IndexedDB était durable, ce qui signifie que dans une transaction readwrite (lecture/écriture) {{domxref ("IDBTransaction.on complet")}} était déclenché uniquement lorsque toutes les données étaient garanties, avant d'être écrites sur le disque.
+
À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées pour augmenter les performances (voir {{Bug ("1112702")}}) ; comportement identique à celui des autres navigateurs qui mettent en oeuvre IndexedDB. Dans ce cas, l'événement {{Event ("complete")}} est déclenché après la réception par le système d'exploitation de la commande d'écriture, mais potentiellement avant l'écriture effective de ces données sur le disque. L'événement peut donc être livré plus rapidement qu'avant, mais il existe un petit risque que la transaction entière soit perdue si le système d'exploitation l'écrase ou s'il y a une perte de puissance du système avant l'écriture sur le disque. Étant donné que ces événements catastrophiques sont rares, la plupart des consommateurs ne devraient pas nécessairement s'en préoccuper davantage.
+
+ +
+

Note : Dans Firefox, si vous souhaitez être sûr de la durabilité pour une raison ou une autre (par exemple, vous stockez des données critiques qui ne peuvent pas être recalculées plus tard), vous pouvez forcer une transaction d'écriture sur le disque avant la délivrance de l'évènement complete  par la création d'une transaction utilisant le mode expérimental (non standard) readwriteflush  (voir {{domxref("IDBDatabase.transaction")}}).  Ceci est actuellement expérimental et ne peut être utilisé que si la préférence dom.indexedDB.experimental est renseignée avec " true " (vrai) dans about:config.

+
+ +
+
+
object store (objet de stockage)
+
+

Le mécanisme avec lequel les données sont stockées dans la base de données. L'objet de stockage maintient constamment ses enregistrements, lesquels sont des paires  "key-value" (clé-valeur). Les enregistrements dans l'objet de stockage sont triés dans l'ordre ascendant des "keys" (clés).

+ +

Chaque objet de stockage doit avoir un nom qui est unique dans la base de données. Il peut éventuellement avoir un key generator (générateur de clé) et un key path (chemin de clé). S'il a un "key path", il utilise in-line keys (clés en ligne) ; sinon, il utilise out-of-line keys (clé hors ligne).

+ +

Pour la documentation de référence sur les objets de stockage, voir IDBObjectStore ou IDBObjectStoreSync.

+
+
version
+
À la première création de la base de données, sa version est le nombre entier 1. Chaque base de données possède une seule version à un moment donné ; il ne peut pas exister plusieurs versions dans le même temps. La seule façon de changer la version est de l'ouvrir avec une version plus haute. Ceci démarre une transaction VERSION_CHANGE et lance un évènement upgradeneeded. Le seul endroit où le schéma de la base de données peut être mis à jour est à l'intérieur du gestionnaire de cet événement.
+
Note : Cette définition décrit les spécifications les plus récentes, qui ne sont implémentées que dans des navigateurs à jour. Les anciens navigateurs ont implémenté la méthode IDBDatabase.setVersion() maintenant obsolète et supprimée.
+
database connection (connexion de la base de données)
+
Une opération créée en ouvrant une database (base de données). Une base de données peut avoir plusieurs connexions en même temps.
+
transaction
+
+

Un ensemble atomique d'accès aux données et d'opérations de modification des données sur une base de données particulière. C'est la façon dont vous interagissez avec les données dans une base. En fait, toute lecture ou changement dans la base de données doit se produire dans une transaction.

+ +

Une connexion à la base de données peut avoir plusieurs transactions actives associées à la fois, pourvu que les transactions d'écriture n'aient pas de chevauchement scopes. La portée (scope) des transactions, qui est définie lors de la création, détermine l'objet avec lequel la transaction peut interagir, et reste constante pour la durée de vie de la transaction. Ainsi, par exemple, si une connexion à la base de données a déjà une transaction d'écriture avec une portée qui couvre simplement l'objet de stockage flyingMonkey , vous pouvez commencer une seconde transaction avec une portée sur les objets de stockage unicornCentaur et unicornPegasus. En ce qui concerne les transactions de lecture, vous pouvez en avoir plusieurs - même avec chevauchements.

+ +

Les transactions doivent être de courte durée, pour que le navigateur puisse mettre fin à une transaction trop longue, afin de libérer des ressources de stockage verrouillées par cette dernière. Vous pouvez annuler la transaction, ce qui modifie les changements apportés à la base de données dans la transaction. Et vous n'avez même pas à attendre que la transaction commence ou soit active pour l'annuler.

+ +

Les trois modes de transaction sont : " readwrite " (lecture/écriture), " readonly " (lecture seule), et " versionchange " (changement de version). La seule manière de créer et supprimer les objets de stockage et les index est d'utiliser une transaction versionchange . Pour en apprendre plus sur les types de transactions, voir l'article de référence pour IndexedDB.

+ +

Parce que tout se passe au sein d'une transaction, c'est un concept très important dans IndexedDB. Pour en savoir plus sur les transactions, en particulier sur la façon dont elles se rapportent aux versions, voir IDBTransaction, qui a également une documentation de référence . Pour la documentation sur l'API synchrone, voir IDBTransactionSync.

+
+
request (requêtes)
+
L'opération par laquelle la lecture et l'écriture sur une base de données est effectuée. Chaque requête représente une opération de lecture ou d'écriture.
+
index
+
+

Un index est un objet de stockage spécialisé pour rechercher des enregistrements dans un autre objet de stockage appelé " referenced object store"  (objet de stockage référencé). L'index est un stockage persistant de key-value (clé-valeur)  dans lequel la partie "value" des enregistrements contient la partie "key" d'un enregistrement de l'objet de stockage référencé. Les enregistrements dans un index sont automatiquement remplis chaque fois que ceux de l'objet référencé sont insérés, mis à jour ou supprimés. Chaque enregistrement d'un index ne peut indiquer qu'un seul enregistrement dans son objet référencé, mais plusieurs index peuvent référencer le même objet. Lorsque l'objet référencé change, tous les index qui s'y réfèrent sont mis à jour automatiquement.

+ +

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant la clé.

+ +

Pour en apprendre plus sur l'utilisation des index, voir Using IndexedDB. Pour la documentation de référence sur l'index, voir IDBKeyRange.

+
+
+ +

Key and value (clé et valeur)

+ +
+
key (clé)
+
+

Une valeur de données par laquelle les valeurs stockées sont organisées et récupérées dans l'objet de stockage . Celui-ci peut obtenir la clé de l'une des trois sources : un générateur de clés, un chemin de clé et une valeur explicitement spécifiée. La clé doit être d'un type de données qui a un nombre supérieur au précédent. Chaque enregistrement doit avoir une clé unique dans l'objet de stockage, de sorte que celui-ci ne peut comporter plusieurs enregistrements avec la même clé.

+ +

Une clé peut être de l'un des types suivants : string (chaîne de caractères), date, float (flottante), binary blob (blob binaire) et array (tableau). Pour les tableaux, la valeur de la clé peut être comprise entre vide et l'infini. Et vous pouvez inclure un tableau dans un tableau.

+ +

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant l'index.

+
+
key generator (générateur de clé)
+
Un mécanisme pour produire de nouvelles clés dans une séquence ordonnée. Si un objet de stockage n'a pas de générateur de clé, l'application doit fournir les clés des enregistrements stockés. Les générateurs ne sont pas partagés entre les objets de stockage. Il s'agit d'un détail concernant les navigateurs, car dans le développement web, vous ne créez pas réellement ou ne gérez pas les accès aux générateurs de clés.
+
in-line key (clé en ligne)
+
Une clé qui est stockée comme partie d'une valeur de stockage. Elle est trouvée en utilisant "key path" (chemin de clé). Une clé en ligne peut être créée par un générateur. Une fois la clé générée, elle peut être stockée dans la valeur utilisant le "key path" ou être utilisée comme clé.
+
out-of-line key (clé hors ligne)
+
Une clé stockée séparément de la valeur stockée.
+
key path (chemin de clé)
+
Définit où le navigateur doit extraire la clé d'une valeur dans l'objet de stockage ou l'index. Un chemin de clé valide peut inclure l'un des éléments suivants : une chaîne vide, un identifiant JavaScript ou plusieurs identifiants JavaScript séparés par des périodes, ou un tableau contenant ces éléments. Il ne peut pas inclure d'espaces.
+
value (valeur)
+
+

Chaque enregistrement a une valeur, qui peut inclure tout ce qui peut être exprimé en JavaScript, y compris : boolean (bouléen), number (nombre), string (chaîne de caractères), date, object (objet), array (tableau), regexp, undefined (indéfini), and null (nul).

+ +

Quand un objet ou un tableau est stocké, les propriétés et valeurs dans cet objet ou ce tableau peuvent aussi être toute valeur valide.

+ +

Blobs et fichiers peuvent être stockés, voir specification.

+
+
+ +

Intervalle et portée

+ +
+
scope (portée ou étendue)
+
L'ensemble des objets de stockage et index auxquels s'applique une transaction. Les portées des transactions en lecture seule peuvent se chevaucher et s'exécuter en même temps. Par contre, les portées des transactions d'écriture ne peuvent pas se chevaucher. Vous pouvez toujours démarrer plusieurs transactions avec la même portée en même temps, mais elles entrent dans une file d'attente et s'exécutent l'une après l'autre.
+
cursor (curseur)
+
Un mécanisme pour l'itération de plusieurs enregistrements avec une "key range" (intervalle de clés). Le curseur possède une source qui indique quel index ou objet stocké est itéré. Il a une position dans l'intervalle et se déplace dans une direction qui augmente ou diminue dans l'ordre des clés d'enregistrement. Pour la documentation de référence sur les curseurs, voir IDBCursor ou IDBCursorSync.
+
key range (intervalle de clés)
+
+

Un intervalle continu sur un type de données utilisé pour les clés. Les enregistrements peuvent être récupérés à partir des objets de stockage et des index à l'aide de touches ou d'un intervalle de clés. Vous pouvez limiter ou filtrer l'intervalle en utilisant les limites inférieures et supérieures. Par exemple, vous pouvez itérer sur toutes les valeurs d'une clé entre x et y.

+ +

Pour la documentation de référence sur "key range", voir IDBKeyRange.

+
+
+ +

Limitations

+ +

IndexedDB est conçu pour couvrir la plupart des cas qui nécessitent un stockage côté client. Cependant, il n'est pas adapté pour quelques cas comme les suivants :

+ + + +

En outre, sachez que les navigateurs peuvent effacer la base de données, comme dans les conditions suivantes :

+ + + +

Les circonstances exactes et les capacités du navigateur changent au fil du temps, mais la philosophie générale des fournisseurs de navigateurs est de faire les efforts nécessaires pour conserver les données lorsque c'est possible.

+ +

Étape suivante

+ +

Avec ces grands concepts dans nos poches, nous pouvons obtenir des choses plus concrètes. Pour un tutoriel sur l'utilisation de l'API, voir Using IndexedDB.

+ +

Voir aussi

+ +

Spécification

+ + + +

Référence

+ + + +

Tutoriels

+ + + +

Article connexe

+ + diff --git a/files/fr/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html b/files/fr/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html new file mode 100644 index 0000000000..0aa9b42d9c --- /dev/null +++ b/files/fr/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html @@ -0,0 +1,77 @@ +--- +title: 'TypeError: invalid arguments' +slug: orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +tags: + - Erreurs + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +original_slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
TypeError: invalid arguments (Firefox)
+ +

Type d'erreur

+ +

{{jsxref("TypeError")}}

+ +

Quel est le problème ?

+ +

Les constructeurs de tableaux typés ont besoin :

+ + + +

afin de créer un nouveau tableau typé. Si on utilise un autre argument, on ne pourra pas créer de tableau typé valide.

+ +

Exemples

+ +

Il est par exemple impossible de construire un tableau typé {{jsxref("Uint8Array")}} à partir d'une chaîne de caractères :

+ +
var ta = new Uint8Array("nope");
+// TypeError: invalid arguments
+
+ +

Voici différentes façons de créer un tableau typué {{jsxref("Uint8Array")}} :

+ +
// À partir d'une longueur
+var uint8 = new Uint8Array(2);
+uint8[0] = 42;
+console.log(uint8[0]); // 42
+console.log(uint8.length); // 2
+console.log(uint8.BYTES_PER_ELEMENT); // 1
+
+// À partir d'un tableau
+var arr = new Uint8Array([21,31]);
+console.log(arr[1]); // 31
+
+// À partir d'un autre tableau typé
+var x = new Uint8Array([21, 31]);
+var y = new Uint8Array(x);
+console.log(y[0]); // 21
+
+// À partir d'un ArrayBuffer
+var buffer = new ArrayBuffer(8);
+var z = new Uint8Array(buffer, 1, 4);
+
+// À partir d'un itérable
+var iterable = function*(){ yield* [1,2,3]; }();
+var uint8 = new Uint8Array(iterable);
+// Uint8Array[1, 2, 3]
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html b/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html deleted file mode 100644 index b8cb7d6cd8..0000000000 --- a/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: Les concepts basiques d'IndexedDB -slug: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB -tags: - - Avancé - - IndexedDB - - concepts -translation_of: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB -original_slug: Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB ---- -

{{DefaultAPISidebar("IndexedDB")}}

- -

IndexedDB est un moyen pour permettre le stockage de données dans le navigateur d'un utilisateur, de manière persistante. Ses fonctions de recherche avancées permettent de créer des applications qui fonctionnent tant connectées que déconnectées. IndexedDB est utile pour créer des applications qui stockent une grande quantité de données (par exemple : un catalogue de DVDs dans une bibliothèque) et des applications qui n'ont pas forcément besoin d'une connectivité Internet continue (par exemple : des clients de messagerie électronique, des listes de tâches, des bloc-notes).

- -

À propos de ce document

- -

Ce document introduit les concepts et les termes essentiels d'IndexedDB. Vous aurez une vue d'ensemble et vous comprendrez les concepts-clés.

- -

Vous pourrez trouver ici :

- - - -

Vue d'ensemble d'IndexedDB

- -

IndexedDB vous permet de stocker et récupérer des objets qui sont indexés avec une "clé". Tous les changements que vous faites dans la base de données sont forcément transactionnels. Comme la plupart des solutions de stockage du web, IndexedDB respecte la politique de sécurité utilisant l'origne (same-origin policy). Ainsi, vous pouvez accéder aux données stockées d'un domaine, alors que vous ne pouvez pas accéder aux données de domaines différents.

- -

IndexedDB est une API asynchrone qui peut être utilisée dans la plupart des contextes, Web Workers inclus. Elle comportait également une version synchrone prévue pour être utilisée dans des Web Workers. mais cette option a été retirée de la spécification en raison du manque d'intérêt de la communauté Web.

- -

IndexedDB est une alternative à l'API WebSQL Database, qui a été dépréciée par le W3C le 18 novembre 2010. Alors que ces APIs sont toutes deux des solutions de stockage, elles n'offrent pas les mêmes fonctionnalités. WebSQL Database est un système d'accès à une base de données relationnelle alors qu'IndexedDB est un système de table indexée. 

- -

Les grands concepts

- -

Si vous avez l'habitude de travailler avec d'autres types de bases de données, vous pourrez être désorienté par l'utlisation d'IndexedDB. Mais il suffit de garder les concepts importants suivants en tête :

- - - -

Définitions

- -

Cette section définit et explique les termes utilisés dans l'API IndexedDB.

- -

Database (base de données)

- -
-
database (base de données)
-
Un référentiel d'informations, comprenant généralement un ou plusieurs objets de stockage. Chaque base de données doit avoir les éléments suivants : -
    -
  • Name . (nom) Il identifie la base de données dans une origine spécifique et reste constant tout au long de la durée de sa vie. Le nom peut être n'importe quelle valeur de chaîne de caractères (y compris une chaîne vide).
  • -
  • Current version (version actuelle). Lors de la création de la base de données, sa version est le nombre entier 1. Chaque base de données ne peut avoir qu'une seule version à un moment donné .
  • -
-
-
durable
-
Dans Firefox, IndexedDB était durable, ce qui signifie que dans une transaction readwrite (lecture/écriture) {{domxref ("IDBTransaction.on complet")}} était déclenché uniquement lorsque toutes les données étaient garanties, avant d'être écrites sur le disque.
-
À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées pour augmenter les performances (voir {{Bug ("1112702")}}) ; comportement identique à celui des autres navigateurs qui mettent en oeuvre IndexedDB. Dans ce cas, l'événement {{Event ("complete")}} est déclenché après la réception par le système d'exploitation de la commande d'écriture, mais potentiellement avant l'écriture effective de ces données sur le disque. L'événement peut donc être livré plus rapidement qu'avant, mais il existe un petit risque que la transaction entière soit perdue si le système d'exploitation l'écrase ou s'il y a une perte de puissance du système avant l'écriture sur le disque. Étant donné que ces événements catastrophiques sont rares, la plupart des consommateurs ne devraient pas nécessairement s'en préoccuper davantage.
-
- -
-

Note : Dans Firefox, si vous souhaitez être sûr de la durabilité pour une raison ou une autre (par exemple, vous stockez des données critiques qui ne peuvent pas être recalculées plus tard), vous pouvez forcer une transaction d'écriture sur le disque avant la délivrance de l'évènement complete  par la création d'une transaction utilisant le mode expérimental (non standard) readwriteflush  (voir {{domxref("IDBDatabase.transaction")}}).  Ceci est actuellement expérimental et ne peut être utilisé que si la préférence dom.indexedDB.experimental est renseignée avec " true " (vrai) dans about:config.

-
- -
-
-
object store (objet de stockage)
-
-

Le mécanisme avec lequel les données sont stockées dans la base de données. L'objet de stockage maintient constamment ses enregistrements, lesquels sont des paires  "key-value" (clé-valeur). Les enregistrements dans l'objet de stockage sont triés dans l'ordre ascendant des "keys" (clés).

- -

Chaque objet de stockage doit avoir un nom qui est unique dans la base de données. Il peut éventuellement avoir un key generator (générateur de clé) et un key path (chemin de clé). S'il a un "key path", il utilise in-line keys (clés en ligne) ; sinon, il utilise out-of-line keys (clé hors ligne).

- -

Pour la documentation de référence sur les objets de stockage, voir IDBObjectStore ou IDBObjectStoreSync.

-
-
version
-
À la première création de la base de données, sa version est le nombre entier 1. Chaque base de données possède une seule version à un moment donné ; il ne peut pas exister plusieurs versions dans le même temps. La seule façon de changer la version est de l'ouvrir avec une version plus haute. Ceci démarre une transaction VERSION_CHANGE et lance un évènement upgradeneeded. Le seul endroit où le schéma de la base de données peut être mis à jour est à l'intérieur du gestionnaire de cet événement.
-
Note : Cette définition décrit les spécifications les plus récentes, qui ne sont implémentées que dans des navigateurs à jour. Les anciens navigateurs ont implémenté la méthode IDBDatabase.setVersion() maintenant obsolète et supprimée.
-
database connection (connexion de la base de données)
-
Une opération créée en ouvrant une database (base de données). Une base de données peut avoir plusieurs connexions en même temps.
-
transaction
-
-

Un ensemble atomique d'accès aux données et d'opérations de modification des données sur une base de données particulière. C'est la façon dont vous interagissez avec les données dans une base. En fait, toute lecture ou changement dans la base de données doit se produire dans une transaction.

- -

Une connexion à la base de données peut avoir plusieurs transactions actives associées à la fois, pourvu que les transactions d'écriture n'aient pas de chevauchement scopes. La portée (scope) des transactions, qui est définie lors de la création, détermine l'objet avec lequel la transaction peut interagir, et reste constante pour la durée de vie de la transaction. Ainsi, par exemple, si une connexion à la base de données a déjà une transaction d'écriture avec une portée qui couvre simplement l'objet de stockage flyingMonkey , vous pouvez commencer une seconde transaction avec une portée sur les objets de stockage unicornCentaur et unicornPegasus. En ce qui concerne les transactions de lecture, vous pouvez en avoir plusieurs - même avec chevauchements.

- -

Les transactions doivent être de courte durée, pour que le navigateur puisse mettre fin à une transaction trop longue, afin de libérer des ressources de stockage verrouillées par cette dernière. Vous pouvez annuler la transaction, ce qui modifie les changements apportés à la base de données dans la transaction. Et vous n'avez même pas à attendre que la transaction commence ou soit active pour l'annuler.

- -

Les trois modes de transaction sont : " readwrite " (lecture/écriture), " readonly " (lecture seule), et " versionchange " (changement de version). La seule manière de créer et supprimer les objets de stockage et les index est d'utiliser une transaction versionchange . Pour en apprendre plus sur les types de transactions, voir l'article de référence pour IndexedDB.

- -

Parce que tout se passe au sein d'une transaction, c'est un concept très important dans IndexedDB. Pour en savoir plus sur les transactions, en particulier sur la façon dont elles se rapportent aux versions, voir IDBTransaction, qui a également une documentation de référence . Pour la documentation sur l'API synchrone, voir IDBTransactionSync.

-
-
request (requêtes)
-
L'opération par laquelle la lecture et l'écriture sur une base de données est effectuée. Chaque requête représente une opération de lecture ou d'écriture.
-
index
-
-

Un index est un objet de stockage spécialisé pour rechercher des enregistrements dans un autre objet de stockage appelé " referenced object store"  (objet de stockage référencé). L'index est un stockage persistant de key-value (clé-valeur)  dans lequel la partie "value" des enregistrements contient la partie "key" d'un enregistrement de l'objet de stockage référencé. Les enregistrements dans un index sont automatiquement remplis chaque fois que ceux de l'objet référencé sont insérés, mis à jour ou supprimés. Chaque enregistrement d'un index ne peut indiquer qu'un seul enregistrement dans son objet référencé, mais plusieurs index peuvent référencer le même objet. Lorsque l'objet référencé change, tous les index qui s'y réfèrent sont mis à jour automatiquement.

- -

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant la clé.

- -

Pour en apprendre plus sur l'utilisation des index, voir Using IndexedDB. Pour la documentation de référence sur l'index, voir IDBKeyRange.

-
-
- -

Key and value (clé et valeur)

- -
-
key (clé)
-
-

Une valeur de données par laquelle les valeurs stockées sont organisées et récupérées dans l'objet de stockage . Celui-ci peut obtenir la clé de l'une des trois sources : un générateur de clés, un chemin de clé et une valeur explicitement spécifiée. La clé doit être d'un type de données qui a un nombre supérieur au précédent. Chaque enregistrement doit avoir une clé unique dans l'objet de stockage, de sorte que celui-ci ne peut comporter plusieurs enregistrements avec la même clé.

- -

Une clé peut être de l'un des types suivants : string (chaîne de caractères), date, float (flottante), binary blob (blob binaire) et array (tableau). Pour les tableaux, la valeur de la clé peut être comprise entre vide et l'infini. Et vous pouvez inclure un tableau dans un tableau.

- -

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant l'index.

-
-
key generator (générateur de clé)
-
Un mécanisme pour produire de nouvelles clés dans une séquence ordonnée. Si un objet de stockage n'a pas de générateur de clé, l'application doit fournir les clés des enregistrements stockés. Les générateurs ne sont pas partagés entre les objets de stockage. Il s'agit d'un détail concernant les navigateurs, car dans le développement web, vous ne créez pas réellement ou ne gérez pas les accès aux générateurs de clés.
-
in-line key (clé en ligne)
-
Une clé qui est stockée comme partie d'une valeur de stockage. Elle est trouvée en utilisant "key path" (chemin de clé). Une clé en ligne peut être créée par un générateur. Une fois la clé générée, elle peut être stockée dans la valeur utilisant le "key path" ou être utilisée comme clé.
-
out-of-line key (clé hors ligne)
-
Une clé stockée séparément de la valeur stockée.
-
key path (chemin de clé)
-
Définit où le navigateur doit extraire la clé d'une valeur dans l'objet de stockage ou l'index. Un chemin de clé valide peut inclure l'un des éléments suivants : une chaîne vide, un identifiant JavaScript ou plusieurs identifiants JavaScript séparés par des périodes, ou un tableau contenant ces éléments. Il ne peut pas inclure d'espaces.
-
value (valeur)
-
-

Chaque enregistrement a une valeur, qui peut inclure tout ce qui peut être exprimé en JavaScript, y compris : boolean (bouléen), number (nombre), string (chaîne de caractères), date, object (objet), array (tableau), regexp, undefined (indéfini), and null (nul).

- -

Quand un objet ou un tableau est stocké, les propriétés et valeurs dans cet objet ou ce tableau peuvent aussi être toute valeur valide.

- -

Blobs et fichiers peuvent être stockés, voir specification.

-
-
- -

Intervalle et portée

- -
-
scope (portée ou étendue)
-
L'ensemble des objets de stockage et index auxquels s'applique une transaction. Les portées des transactions en lecture seule peuvent se chevaucher et s'exécuter en même temps. Par contre, les portées des transactions d'écriture ne peuvent pas se chevaucher. Vous pouvez toujours démarrer plusieurs transactions avec la même portée en même temps, mais elles entrent dans une file d'attente et s'exécutent l'une après l'autre.
-
cursor (curseur)
-
Un mécanisme pour l'itération de plusieurs enregistrements avec une "key range" (intervalle de clés). Le curseur possède une source qui indique quel index ou objet stocké est itéré. Il a une position dans l'intervalle et se déplace dans une direction qui augmente ou diminue dans l'ordre des clés d'enregistrement. Pour la documentation de référence sur les curseurs, voir IDBCursor ou IDBCursorSync.
-
key range (intervalle de clés)
-
-

Un intervalle continu sur un type de données utilisé pour les clés. Les enregistrements peuvent être récupérés à partir des objets de stockage et des index à l'aide de touches ou d'un intervalle de clés. Vous pouvez limiter ou filtrer l'intervalle en utilisant les limites inférieures et supérieures. Par exemple, vous pouvez itérer sur toutes les valeurs d'une clé entre x et y.

- -

Pour la documentation de référence sur "key range", voir IDBKeyRange.

-
-
- -

Limitations

- -

IndexedDB est conçu pour couvrir la plupart des cas qui nécessitent un stockage côté client. Cependant, il n'est pas adapté pour quelques cas comme les suivants :

- - - -

En outre, sachez que les navigateurs peuvent effacer la base de données, comme dans les conditions suivantes :

- - - -

Les circonstances exactes et les capacités du navigateur changent au fil du temps, mais la philosophie générale des fournisseurs de navigateurs est de faire les efforts nécessaires pour conserver les données lorsque c'est possible.

- -

Étape suivante

- -

Avec ces grands concepts dans nos poches, nous pouvons obtenir des choses plus concrètes. Pour un tutoriel sur l'utilisation de l'API, voir Using IndexedDB.

- -

Voir aussi

- -

Spécification

- - - -

Référence

- - - -

Tutoriels

- - - -

Article connexe

- - diff --git a/files/fr/web/javascript/reference/errors/typed_array_invalid_arguments/index.html b/files/fr/web/javascript/reference/errors/typed_array_invalid_arguments/index.html deleted file mode 100644 index e3f0711d81..0000000000 --- a/files/fr/web/javascript/reference/errors/typed_array_invalid_arguments/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'TypeError: invalid arguments' -slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments -tags: - - Erreurs - - JavaScript - - TypeError -translation_of: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments -original_slug: Web/JavaScript/Reference/Erreurs/Typed_array_invalid_arguments ---- -
{{jsSidebar("Errors")}}
- -

Message

- -
TypeError: invalid arguments (Firefox)
- -

Type d'erreur

- -

{{jsxref("TypeError")}}

- -

Quel est le problème ?

- -

Les constructeurs de tableaux typés ont besoin :

- - - -

afin de créer un nouveau tableau typé. Si on utilise un autre argument, on ne pourra pas créer de tableau typé valide.

- -

Exemples

- -

Il est par exemple impossible de construire un tableau typé {{jsxref("Uint8Array")}} à partir d'une chaîne de caractères :

- -
var ta = new Uint8Array("nope");
-// TypeError: invalid arguments
-
- -

Voici différentes façons de créer un tableau typué {{jsxref("Uint8Array")}} :

- -
// À partir d'une longueur
-var uint8 = new Uint8Array(2);
-uint8[0] = 42;
-console.log(uint8[0]); // 42
-console.log(uint8.length); // 2
-console.log(uint8.BYTES_PER_ELEMENT); // 1
-
-// À partir d'un tableau
-var arr = new Uint8Array([21,31]);
-console.log(arr[1]); // 31
-
-// À partir d'un autre tableau typé
-var x = new Uint8Array([21, 31]);
-var y = new Uint8Array(x);
-console.log(y[0]); // 21
-
-// À partir d'un ArrayBuffer
-var buffer = new ArrayBuffer(8);
-var z = new Uint8Array(buffer, 1, 4);
-
-// À partir d'un itérable
-var iterable = function*(){ yield* [1,2,3]; }();
-var uint8 = new Uint8Array(iterable);
-// Uint8Array[1, 2, 3]
-
- -

Voir aussi

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