IndexedDB API
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
IndexedDB ist eine Low-Level-API für die clientseitige Speicherung großer Mengen strukturierter Daten, einschließlich Dateien/Blobs. Diese API verwendet Indizes, um Hochleistungssuchen dieser Daten zu ermöglichen. WährendWeb Storage nützlich für die Speicherung kleinerer Datenmengen ist, ist es weniger geeignet für die Speicherung größerer Mengen strukturierter Daten. IndexedDB bietet dafür eine Lösung. Dies ist die Hauptseite für die abgedeckte IndexedDB-Dokumentation bei MDN — hier bieten wir Links zur vollständigen API-Referenz und zu Benutzungsanleitungen, Details zur Browser-Kompatibilität und einige Erklärungen zu wichtigen Konzepten.
Wichtige Konzepte und Nutzung
IndexedDB ist ein transaktionales Datenbanksystem, ähnlich wie ein SQL-basiertes relationales Datenbankverwaltungssystem (RDBMS). Im Gegensatz zu SQL-basierten RDBMS, die feste Spaltentabellen verwenden, ist IndexedDB eine JavaScript-basierte objektorientierte Datenbank. IndexedDB ermöglicht es Ihnen, Objekte zu speichern und abzurufen, die mit einemSchlüssel indexiert sind; alle Objekte, die durch denStructured Clone Algorithm unterstützt werden, können gespeichert werden. Sie müssen das Datenbankschema angeben, eine Verbindung zu Ihrer Datenbank öffnen und dann Daten innerhalb einer Reihe vonTransaktionen abrufen und aktualisieren.
- Lesen Sie mehr überIndexedDB-Schlüsseleigenschaften und grundlegende Terminologie.
- Lernen Sie, IndexedDB asynchron aus den Grundlagen heraus zu verwenden, mit unseremUsing IndexedDB Leitfaden.
- Sehen Sie sich ein vollständiges Schritt-für-Schritt-Beispiel in derPrüfung, wann eine Frist fällig ist Anleitung an.
Hinweis:Wie die meisten Webspeicherlösungen folgt IndexedDB einerSame-Origin-Policy. Während Sie also auf gespeicherte Daten innerhalb einer Domäne zugreifen können, können Sie nicht auf Daten über verschiedene Domänen hinweg zugreifen.
Synchron und asynchron
Operationen, die mit IndexedDB durchgeführt werden, erfolgen asynchron, um Anwendungen nicht zu blockieren.
Speichergrenzen und Aussonderungskriterien
Es gibt eine Reihe von Webtechnologien, die Daten verschiedener Art auf der Clientseite (d.h. auf Ihrer lokalen Festplatte) speichern. IndexedDB wird am häufigsten diskutiert. Der Prozess, durch den der Browser ermittelt, wie viel Speicherplatz er für die Webdatenverarbeitung bereitstellt und was gelöscht wird, wenn dieses Limit erreicht ist, ist nicht einfach und unterscheidet sich zwischen den Browsern.Browser-Speicherquoten und Aussonderungskriterien versucht zu erklären, wie dies funktioniert, zumindest im Fall von Firefox.
Schnittstellen
Um auf eine Datenbank zuzugreifen, rufen Sieopen()
auf derindexedDB
Eigenschaft eineswindow Objekts auf. Diese Methode gibt einIDBRequest
Objekt zurück; asynchrone Operationen kommunizieren mit der aufrufenden Anwendung durch das Auslösen von Ereignissen aufIDBRequest
Objekten.
Verbindung zu einer Datenbank herstellen
IDBFactory
Bietet Zugriff auf eine Datenbank. Ein Objekt dieses Typs ist der Wert der globalen
Window.indexedDB
undWorkerGlobalScope.indexedDB
Eigenschaften. Es ist daher der Einstiegspunkt für die API.IDBOpenDBRequest
Repräsentiert eine Anfrage zum Öffnen einer Datenbank.
IDBDatabase
Repräsentiert eine Verbindung zu einer Datenbank. Es ist der einzige Weg, um eine Transaktion auf der Datenbank zu erhalten.
Daten abrufen und modifizieren
IDBTransaction
Repräsentiert eine Transaktion. Sie erstellen eine Transaktion auf einer Datenbank, spezifizieren den Umfang (wie z.B. welche Objekt-Speicher Sie zugreifen möchten), und bestimmen die Art des Zugriffs (nur lesen oder lesend/schreibend), den Sie wünschen.
IDBRequest
Generische Schnittstelle, die Datenbankanfragen behandelt und Zugriff auf Ergebnisse bietet.
IDBObjectStore
Repräsentiert einen Objektspeicher, der den Zugriff auf einen Satz von Daten in einer IndexedDB-Datenbank ermöglicht, die über den Primärschlüssel abgerufen wurde.
IDBIndex
Erlaubt ebenfalls den Zugriff auf einen Teil der Daten in einer IndexedDB-Datenbank, verwendet jedoch einen Index, um das oder die Datensätze abzurufen, anstatt den Primärschlüssel. Dies ist manchmal schneller als die Verwendung von
IDBObjectStore
.IDBCursor
Iteriert über Objektspeicher und Indizes.
IDBCursorWithValue
Iteriert über Objektspeicher und Indizes und gibt den aktuellen Wert des Cursors zurück.
IDBKeyRange
Definiert einen Schlüsselsbereich, der verwendet werden kann, um Daten aus einer Datenbank in einem bestimmten Bereich abzurufen.
Benutzerdefinierte Ereignisschnittstellen
Diese Spezifikation löst Ereignisse mit der folgenden benutzerdefinierten Schnittstelle aus:
IDBVersionChangeEvent
Die
IDBVersionChangeEvent
Schnittstelle gibt an, dass die Version der Datenbank geändert wurde, als Ergebnis einerIDBOpenDBRequest.onupgradeneeded
Ereignis-Handler-Funktion.
Beispiele
- To-do-Benachrichtigungen (Beispiel live ansehen): Die Referenzanwendung für die Beispiele in den Referenzdokumenten.
Spezifikationen
Specification |
---|
Indexed Database API 3.0 |
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.