Dans le stockage local de HTML5, il existe une base de données appelée indexDB. D'après la partie précédente: HTML5 Advanced Series: Web Storage, nous savons que le stockage Web peut facilement accéder aux données simples dans l'accès local, mais pour un grand nombre de stockage structuré, les avantages de l'indexé sont encore plus évidents. Ensuite, jetons un coup d'œil à la façon dont IndededDB stocke les données.
Connecter la base de donnéesUn site Web peut avoir plusieurs bases de données indexées, mais le nom de chaque base de données est unique. Nous devons connecter une base de données spécifique via le nom de la base de données.
var recherche = indexddb.open ('dbname', 1); } Demande.
Nous utilisons la méthode indexéedb.open pour connecter la base de données. Cette méthode renverra un objet idboPendBRequest pour représenter un objet de demande qui demande une base de données. Nous pouvons définir la méthode où la connexion est réussie ou ne parvient pas à s'exécuter en surveillant les événements Onsuccccess et ONERROR de l'objet de demande.
Étant donné que l'entrepôt de données dans la base de données ne permet pas à l'entrepôt de base de données de changer dans la même version, le nouveau numéro de version est nécessaire pour mettre à jour la version dans la méthode indededdb.open pour éviter à plusieurs reprises la base de données modifiée dans la même version. Le numéro de version doit être un entier!
var Research = indededdb.open ('dbname', 2); is = is = is = = '+ e.newversion);}
Nous définissons la méthode exécutée lorsque la version de la base de données est mise à jour en surveillant l'événement onupgradeeded de l'objet de demande.
Éteignez la base de donnéesAprès avoir utilisé IndededB.Open pour se connecter au succès de la base de données, un objet IdBoPendBRequest sera renvoyé.
Var Research = indexddb.open (Dbname ', 2); close (); console.log («la base de données a été fermée»);}Supprimer la base de données
indexddb.deletedatabase («dbname»);Créer un entrepôt d'objet
Le magasin d'objets est la base de la base de données indexée.
var recherche = indexddb.open ('dbname', 3); 'userId', Autooincrement: false});
La méthode DB.CreateObjectStore reçoit deux paramètres. La propriété de trajectoire dans cet objet est la clé principale, qui équivaut à l'ID dans la table de base de données comme clé principale. L'attribut AutoiinCment est faux, ce qui signifie que la valeur de clé principale n'augmente pas d'elle-même.
Remarque: Dans la base de données, le nom de l'entrepôt d'objet ne peut pas être répété, sinon le navigateur rapportera une erreur.
Créer un indexDans la base de données indexée, un index est créé via un certain attribut de l'objet de données.
Var Research = indexeddb.open ('dbname', 4); 'userId', AutoIncrement: False});
La méthode Store.CreateIndex reçoit trois paramètres. La valeur est un objet JS. La propriété unique de cet objet est vraie, ce qui signifie que la valeur d'index ne peut pas être la même, c'est-à-dire que le nom d'utilisateur des deux données ne peut pas être le même, et FAUX peut être le même.
AffairesDans IndededDB, toutes les opérations de données ne peuvent être effectuées qu'en affaires. Une fois la base de données réussie, vous pouvez utiliser la méthode de transaction de l'objet idboPendBrequest pour ouvrir uniquement des transactions de lecture ou de lecture et d'écriture.
Var Research = indexddb.open ('dbname', 5); tx.onComplete = function (e) {console.log ('La transaction est terminée');} tx.onabort = fonction (e) {console.log ('la transaction a été suspendue');}}
La méthode DB.Transaction reçoit deux paramètres. Le deuxième paramètre est le mode de transaction. Peut être transmis à Readwrite pour les opérations de lecture et d'écriture.
Données d'exploitationvar Research = indexddb.open ('dbname', 5); ',', ',' Readwrite '); Valeur); supprimer (1); }}}}}}
Le rôle d'ajout et de put est similaire. et utiliser Ajouter pour enregistrer les données.
Données de récupérationNous savons ci-dessus peut obtenir des données à l'aide de la méthode get (), mais la valeur de clé principale est nécessaire. Si nous voulons obtenir une gamme de données, nous pouvons utiliser un curseur. Le curseur a été créé et ouvert par la méthode des opencurseurs de l'entrepôt d'objet.
La méthode OpenCursor reçoit deux paramètres.
// BoundRange représente une collection de valeurs de clé primaire de 1 à 10 (y compris 1 et 10). // Si le troisième paramètre est vrai, cela signifie que la valeur de clé minimale n'est pas 1. Si le quatrième paramètre est vrai, cela signifie qu'il ne contient pas la valeur de clé maximale 10 et que la valeur par défaut est Falsevar BoundRange = idbkeyrande.bound (1, 10, false false, false); Le seul paramètre () est la valeur de clé principale, un type entier. varmingRange = idbkeyrange.only (1); // Le deuxième paramètre est facultatif, ce qui signifie que TRUE n'inclut pas la clé primaire minimale 1, FALSE est inclus, et par défaut à FalseVar LogerRange = IdbkeyRange. de la valeur de clé primaire moins de 10 essence // Le deuxième paramètre est facultatif, ce qui signifie que TRUE n'inclut pas la plus grande clé principale 10, et False inclut, et la valeur par défaut est FalseVar UPPerrange = idbKeyRange.UperperBound (10, false);
Le deuxième paramètre de la méthode des opencurseurs représente la direction de lecture du curseur.
var Research = indexddb.open ('dbname', 6); ',', ',', 'Readwrite'); ; }
Lorsqu'il existe des données qui remplissent les conditions de recherche, vous pouvez mettre à jour les données via la méthode de mise à jour:
Cursor.updata ({userId: cursor.key, nom d'utilisateur: 'Hello', âge: 18});
Ces données peuvent être supprimées via la méthode de suppression:
cursor.delete ();
Vous pouvez continuer à lire les prochaines données via la méthode Constinue, sinon vous ne continuera pas à lire après avoir lu les premiers données:
Cursor.Continue ();Résumer
De la connexion des bases de données, créant des entrepôts d'objets, des index, des données de fonctionnement et de récupération, complétez le processus complet des données d'accès indexées. Ci-dessous à travers un exemple complet pour mieux saisir la base de données indexée. Adresse du code: indexédb-démo
Ce qui précède est tout le contenu de cet article.