Ein Tutorial zur Verwendung von clientseitigem Speicher in Web-Apps
Beim Erstellen moderner Webanwendungen, insbesondere progressiver Web-Apps (PWAs), ist es von entscheidender Bedeutung, eine Möglichkeit zum Offline-Speichern von Daten zu haben. IndexedDB ist eine leistungsstarke clientseitige Datenbank, die es Web-Apps ermöglicht, Daten zu speichern und abzurufen, auch wenn der Benutzer offline ist. Dieser Leitfaden führt Sie durch die Grundlagen von IndexedDB und zeigt Ihnen, wie Sie Daten (CRUD-Operationen) in Ihrer Web-App erstellen, lesen, aktualisieren und löschen.
Was ist IndexedDB?
IndexedDB ist eine Low-Level-API für die clientseitige Speicherung großer Mengen strukturierter Daten, einschließlich Dateien und Blobs. Im Gegensatz zu localStorage können Sie mit IndexedDB komplexe Datentypen und nicht nur Zeichenfolgen speichern. Es verwendet ein asynchrones, transaktionales Datenbankmodell, was es leistungsstark für Anwendungen macht, die große Datensätze oder Offline-Datensynchronisierung verarbeiten müssen.
Warum IndexedDB verwenden?
- Offline-Funktionen: Ideal für Progressive Web Apps (PWAs) und Offline-First-Anwendungen.
- Speicherkapazität: IndexedDB kann weit mehr Daten speichern als localStorage (das auf etwa 5–10 MB begrenzt ist).
- Flexibilität:Speichern Sie komplexe Objekte wie Arrays, Objekte und sogar Blobs.
- Asynchron: Vorgänge blockieren den UI-Thread nicht, was bedeutet, dass Ihre App weiterhin reagiert.
Erste Schritte: Einrichten von IndexedDB
Lassen Sie uns in die Kernschritte für die Arbeit mit IndexedDB eintauchen. Wir werden Folgendes behandeln:
- Erstellen oder Öffnen einer Datenbank
- Objektspeicher (Tabellen) erstellen
- Daten hinzufügen
- Daten lesen
- Daten aktualisieren
- Daten löschen
Schritt 1: Öffnen einer Datenbank
Um mit IndexedDB zu interagieren, müssen Sie zunächst eine Verbindung zur Datenbank herstellen. Wenn die Datenbank nicht existiert, wird sie erstellt.
const request = indexedDB.open('MyCustomersDatabase', 1); request.onerror = (event) => { console.error('Database error:', event.target.errorCode); }; request.onsuccess = (event) => { const db = event.target.result; console.log('Database opened successfully', db); }; request.onupgradeneeded = (event) => { const db = event.target.result; if (!db.objectStoreNames.contains('customers')) { const objectStore = db.createObjectStore('customers', { keyPath: 'id' }); objectStore.createIndex('name', 'name', { unique: false }); objectStore.createIndex('email', 'email', { unique: true }); console.log('Object store created.'); } };
Hier ist, was passiert:
- indexedDB.open öffnet oder erstellt die Datenbank.
- onerror behandelt alle Fehler beim Öffnen der Datenbank.
- onsuccess wird ausgelöst, wenn die Datenbankverbindung erfolgreich geöffnet wurde.
- onupgradeneeded wird ausgelöst, wenn die Datenbank aktualisiert werden muss (z. B. wenn die Datenbank zum ersten Mal geöffnet wird oder wenn sich die Version ändert). Hier definieren Sie Ihre Objektspeicher (stellen Sie sich diese als Tabellen in SQL vor).
Schritt 2: Daten zu IndexedDB hinzufügen
Da wir nun unsere Datenbank und unseren Objektspeicher eingerichtet haben, fügen wir einige Daten hinzu.
const addCustomer = (db, customer) => { const transaction = db.transaction(['customers'], 'readwrite'); const objectStore = transaction.objectStore('customers'); const request = objectStore.add(customer); request.onsuccess = () => { console.log('Customer added:', customer); }; request.onerror = (event) => { console.error('Error adding customer:', event.target.errorCode); }; } const customer = { id: 1, name: 'John Doe', email: 'john@example.com' }; request.onsuccess = (event) => { const db = event.target.result; addCustomer(db, customer); };
Hier ist, was passiert:
- Wir erstellen eine Transaktion mit Lese-/Schreibzugriff, um Änderungen zu ermöglichen.
- Die Methode add() wird verwendet, um Daten in den Objektspeicher einzufügen.
- Wir achten auf Erfolgs- und Fehlerereignisse, um zu bestätigen, ob die Daten erfolgreich hinzugefügt wurden.
Schritt 3: Daten aus IndexedDB lesen
Das Lesen von Daten aus IndexedDB ist ebenfalls unkompliziert. Rufen wir den Kunden ab, den wir gerade hinzugefügt haben, indem wir die Methode get() verwenden.
const getCustomer = (db, id) => { const transaction = db.transaction(['customers'], 'readonly'); const objectStore = transaction.objectStore('customers'); const request = objectStore.get(id); request.onsuccess = (event) => { const customer = event.target.result; if (customer) { console.log('Customer found:', customer); } else { console.log('Customer not found.'); } }; request.onerror = (event) => { console.error('Error fetching customer:', event.target.errorCode); }; } request.onsuccess = (event) => { const db = event.target.result; getCustomer(db, 1); // Fetch customer with ID 1 };
Schritt 4: Daten in IndexedDB aktualisieren
Um einen vorhandenen Datensatz zu aktualisieren, können wir die Methode put() verwenden, die ähnlich wie add() funktioniert, aber den Datensatz ersetzt, wenn der Schlüssel bereits vorhanden ist.
const updateCustomer = (db, customer) => { const transaction = db.transaction(['customers'], 'readwrite'); const objectStore = transaction.objectStore('customers'); const request = objectStore.put(customer); request.onsuccess = () => { console.log('Customer updated:', customer); }; request.onerror = (event) => { console.error('Error updating customer:', event.target.errorCode); }; } const updatedCustomer = { id: 1, name: 'Jane Doe', email: 'jane@example.com' }; request.onsuccess = (event) => { const db = event.target.result; updateCustomer(db, updatedCustomer); };
Schritt 5: Daten aus IndexedDB löschen
Um schließlich einen Datensatz zu löschen, verwenden Sie die Methode delete().
const deleteCustomer = (db, id) => { const transaction = db.transaction(['customers'], 'readwrite'); const objectStore = transaction.objectStore('customers'); const request = objectStore.delete(id); request.onsuccess = () => { console.log('Customer deleted.'); }; request.onerror = (event) => { console.error('Error deleting customer:', event.target.errorCode); }; } request.onsuccess = (event) => { const db = event.target.result; deleteCustomer(db, 1); // Delete customer with ID 1 };
Abschluss
IndexedDB ist eine robuste Lösung für die Handhabung der clientseitigen Datenspeicherung, insbesondere in Offline-First-Webanwendungen. Indem Sie dieser Anleitung folgen, haben Sie Folgendes gelernt:
- Öffnen und erstellen Sie eine Datenbank
- Objektspeicher erstellen
- Daten hinzufügen, lesen, aktualisieren und löschen
Mit IndexedDB können Sie robustere Webanwendungen erstellen, die Daten lokal speichern und auch ohne Internetverbindung funktionieren.
Referenzen:
MDN Web Docs – IndexedDB API
Eine umfassende Anleitung zur Funktionsweise von IndexedDB, seinen API-Methoden und Anwendungsfällen.
MDN IndexedDB-LeitfadenGoogle Developers – IndexedDB
Ein ausführlicher Artikel über Best Practices und die Verwendung von IndexedDB zum Erstellen offlinefähiger Web-Apps.
Google Developers – IndexedDBW3C Indexed Database API
Die offizielle Spezifikation des W3C, die die technische Implementierung und Struktur von IndexedDB beschreibt.
W3C IndexedDB Spec
Diese Ressourcen bieten zusätzliche Tiefe und Kontext, wenn Sie über dieses Tutorial hinaus mehr über IndexedDB erfahren möchten!
Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonEin Leitfaden für Einsteiger zu IndexedDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Bringen Sie Matrix -Filmeffekte auf Ihre Seite! Dies ist ein cooles JQuery -Plugin, das auf dem berühmten Film "The Matrix" basiert. Das Plugin simuliert die klassischen grünen Charakter-Effekte im Film und wählen Sie einfach ein Bild aus, und das Plugin verwandelt es in ein mit numerischer Zeichen gefüllte Bild im Matrix-Stil. Komm und probiere es aus, es ist sehr interessant! Wie es funktioniert Das Plugin lädt das Bild auf die Leinwand und liest die Pixel- und Farbwerte: Data = ctx.getImagedata (x, y, setting.grainize, setting.grainesize) .data Das Plugin liest geschickt den rechteckigen Bereich des Bildes und berechnet JQuery, um die durchschnittliche Farbe jedes Bereichs zu berechnen. Dann verwenden Sie

In diesem Artikel werden Sie mit der JQuery -Bibliothek ein einfaches Bildkarousel erstellen. Wir werden die BXSLIDER -Bibliothek verwenden, die auf JQuery basiert und viele Konfigurationsoptionen zum Einrichten des Karussells bietet. Heutzutage ist Picture Carousel zu einem Muss auf der Website geworden - ein Bild ist besser als tausend Wörter! Nachdem Sie sich entschieden haben, das Bild -Karussell zu verwenden, ist die nächste Frage, wie Sie es erstellen. Zunächst müssen Sie hochwertige, hochauflösende Bilder sammeln. Als nächstes müssen Sie ein Bildkarousel mit HTML und einem JavaScript -Code erstellen. Es gibt viele Bibliotheken im Web, die Ihnen helfen können, Karussell auf unterschiedliche Weise zu erstellen. Wir werden die Open -Source -BXSLIDER -Bibliothek verwenden. Die BXSLIDER -Bibliothek unterstützt reaktionsschnelles Design, sodass das mit dieser Bibliothek gebaute Karussell an alle angepasst werden kann

Wichtige Punkte erweiterte strukturierte Tagging mit JavaScript können die Zugänglichkeit und Wartbarkeit von Webseiteninhalten erheblich verbessern und gleichzeitig die Dateigröße reduzieren. JavaScript kann effektiv verwendet werden, um HTML -Elementen dynamisch Funktionen hinzuzufügen, z. Durch das Integrieren von JavaScript in strukturierte Tags können Sie dynamische Benutzeroberflächen erstellen, z. B. Tabletten, für die keine Seiten -Aktualisierung erforderlich ist. Es ist entscheidend sicherzustellen, dass JavaScript -Verbesserungen die grundlegende Funktionalität von Webseiten nicht behindern. Erweiterte JavaScript -Technologie kann verwendet werden (

Datensätze sind äußerst wichtig für den Aufbau von API -Modellen und verschiedenen Geschäftsprozessen. Aus diesem Grund ist das Import und Exportieren von CSV eine häufig benötigte Funktionalität. In diesem Tutorial lernen Sie, wie Sie eine CSV-Datei in einem Angular herunterladen und importieren.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung