Heim >Web-Frontend >HTML-Tutorial >Wie verwende ich IndexedDB für clientseitige Datenbankspeicher in HTML5?
IndexedDB ist eine API auf niedriger Ebene für die clientseitige Speicherung strukturierter Daten, einschließlich Dateien/Blobs. Um IndexedDB in HTML5 für die clientseitige Datenbankspeicherung zu verwenden, können Sie folgende Schritte befolgen:
Öffnen Sie eine Datenbank:
Beginnen Sie zunächst eine Verbindung zur IndexedDB -Datenbank. Dies kann unter Verwendung der indexedDB.open()
-Methode erfolgen. Sie geben einen Namen für Ihre Datenbank und optional eine Versionsnummer an. Mit dem onupgradeneeded
-Ereignis -Handler werden das Datenbankschema eingerichtet, wenn die Datenbank erstellt wird, oder ihre Versionsänderungen.
<code class="javascript">const request = indexedDB.open("MyDatabase", 1); request.onupgradeneeded = function(event) { const db = event.target.result; // Create an objectStore for this database const objectStore = db.createObjectStore("items", { keyPath: "id" }); // Create an index to search items by name objectStore.createIndex("name", "name", { unique: false }); };</code>
Daten hinzufügen:
Um Daten zu Ihrer indexedDB -Datenbank hinzuzufügen, öffnen Sie zuerst eine Transaktion und verwenden dann die Methode add()
oder put()
im Objektspeicher.
<code class="javascript">request.onsuccess = function(event) { const db = event.target.result; const transaction = db.transaction(["items"], "readwrite"); const objectStore = transaction.objectStore("items"); const request = objectStore.add({ id: 1, name: "item1", price: 10 }); request.onsuccess = function(event) { console.log("Item added to the database"); }; };</code>
Daten abrufen:
Um Daten abzurufen, können Sie die get()
-Methode verwenden, wenn Sie den Schlüssel kennen. Für komplexere Abfragen können Sie Cursors oder Indizes verwenden.
<code class="javascript">request.onsuccess = function(event) { const db = event.target.result; const transaction = db.transaction(["items"], "readonly"); const objectStore = transaction.objectStore("items"); const request = objectStore.get(1); request.onsuccess = function(event) { console.log("Item retrieved: ", event.target.result); }; };</code>
Daten aktualisieren und löschen:
Das Aktualisieren von Daten kann mit der Methode put()
erfolgen, mit der die Daten basierend auf dem Schlüssel einfügen oder aktualisiert werden. Verwenden Sie zum Löschen von Daten die Methode delete()
.
<code class="javascript">request.onsuccess = function(event) { const db = event.target.result; const transaction = db.transaction(["items"], "readwrite"); const objectStore = transaction.objectStore("items"); const requestUpdate = objectStore.put({ id: 1, name: "item1 updated", price: 15 }); const requestDelete = objectStore.delete(2); };</code>
Fehlerbehandlung:
Behandeln Sie immer Fehler mit dem onerror
-Ereignis, um Probleme zu erfassen, die während des Datenbankvorgangs auftreten.
<code class="javascript">request.onerror = function(event) { console.log("Database error: " event.target.errorCode); };</code>
IndexedDB bietet mehrere Vorteile für das Speichern von Daten auf der Clientseite:
Sicherstellen, dass die Datenpersistenz und Sicherheit in indiziertenDB mehrere wichtige Praktiken umfasst:
Datendauer:
Datensicherheit:
Bei der Implementierung von IndexedDB ist es wichtig, gemeinsame Fallstricke zu vermeiden, die zu Leistungsproblemen oder Anwendungsfehlern führen können:
onerror
-Event -Handler, um Fehler zu fangen und zu protokollieren.idb
zu abstrakten Browserunterschieden zu verwenden.Das obige ist der detaillierte Inhalt vonWie verwende ich IndexedDB für clientseitige Datenbankspeicher in HTML5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!