Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3591|Antwort: 1

[Sonstige] Das Frontend speichert das localForage-Paket von IndexedDB

[Link kopieren]
Veröffentlicht am 12.10.2023 20:42:27 | | | |
Gängige Frontend-Datenspeicherlösungen umfassen hauptsächlich:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storageusw., zum Beispiel:

charakteristischKekslocalStoragesessionStorageindexedDB
DatenlebenszyklusIn der Regel kann die Ablaufzeit vom Server generiert werden; Komponenten wie Frontend-Adoption und JS-Cookie können ebenfalls generiert werdenSolange es nicht aufgeräumt wird, ist es immer da; Wenn der Browser geschlossen ist, wird er ebenfalls lokal gespeichert, aber browserübergreifend wird nicht unterstützt.Das Reinigen und Aktualisieren der Seite bleibt bestehen, wenn die Seite geschlossen ist, und Seitenübergreifende Interaktionen werden nicht unterstütztSofern es nicht beseitigt wurde, hat es schon immer existiert.
Größe des Datenspeichers4K5M5MKeine Größenbegrenzung
Kommunizieren Sie mit dem ServerSie wird jedes Mal im angeforderten Header übertragen, was sich auf die Leistung der Anfrage auswirkt; Gleichzeitig ist es, da es in der Anfrage enthalten ist, auch anfällig für SicherheitsproblemeNicht teilnehmenNicht teilnehmenNicht teilnehmen
BesonderheitString-Schlüssel-Wert-Paare speichern Daten lokalString-Schlüssel-Wert-Paare speichern Daten lokalString-Schlüssel-Wert-Paare speichern Daten lokalIndexedDB ist eine nicht-relationale Datenbank (Operationen über SQL-Anweisungen werden nicht unterstützt). Es kann große Datenmengen speichern, Schnittstellen für Abfragen bereitstellen und Indizes erstellen, die andere Speicherlösungen nicht bereitstellen können.

IndexedDB

Dieser Artikel beschreibt hauptsächlich die Nutzung von IndexedDB für Frontend-Speicher und wird wie folgt eingeführt:

IndexedDB ist eine zugrundeliegende API zur Speicherung großer Mengen strukturierter Daten (auch Datei-/Binärobjekte (Blobs)) auf der Clientseite. Die API verwendet Indizes, um leistungsstarke Datensuche zu ermöglichen. Obwohl Webspeicher für kleinere Datenmengen nützlich ist, ist er nicht so gut wie größere Mengen strukturierter Daten. IndexedDB bietet eine Lösung für dieses Szenario. Diese Seite ist die Hauptleitfaden für MDN IndexedDB – hier bieten wir eine vollständige API-Referenz und einen Nutzungsleitfaden, Details zur Browserunterstützung sowie Links zu einigen Erklärungen zu Schlüsselkonzepten.

IndexedDB verfügt über folgende Funktionen:

(1) Speicherung von Schlüsselwertpaaren. IndexedDB verwendet einen Objektspeicher, um Daten zu speichern. Alle Datentypen können direkt abgelegt werden, einschließlich JavaScript-Objekte. Im Objekt-Repository werden die Daten in Form von "Schlüssel-Wert-Paare" gespeichert, und jeder Datensatz hat einen entsprechenden Primärschlüssel, der eindeutig ist und nicht dupliziert werden kann, sonst wird ein Fehler angezeigt.

(2) Asynchron. IndexedDB sperrt den Browser nicht und der Benutzer kann weiterhin andere Operationen ausführen, im Gegensatz zu LocalStorage, das synchron arbeitet. Asynchrones Design soll verhindern, dass große Datenmengen gelesen und geschrieben werden, was die Leistung von Webseiten verlangsamt.

(3) Unterstützungsangelegenheiten. IndexedDB unterstützt Transaktionen, was bedeutet, dass, wenn einer der Operationsschritte fehlschlägt, die gesamte Transaktion abgebrochen wird und die Datenbank in den Zustand vor der Transaktion zurückgesetzt wird, sodass es keinen Fall gibt, nur einen Teil der Daten umzuschreiben.

(4) Homologie-Restriktion. IndexedDB unterliegt demselben Ursprungslimit, und jede Datenbank entspricht dem Domainnamen, der sie erstellt hat. Webseiten können Datenbanken nur unter eigenen Domainnamen aufrufen, nicht auf domänenübergreifende Datenbanken.

(5) Großer Lagerraum. IndexedDB hat einen viel größeren Speicherplatz als LocalStorage, in der Regel nicht weniger als 250 MB, und es gibt kein oberes Limit.

(6) Unterstützung von binärer Speicherung. IndexedDB kann nicht nur Strings, sondern auch Binärdaten (ArrayBuffer-Objekte und Blob-Objekte) speichern.


Wenn es schwierig ist, direkt mit IndexedDB zu starten, und Sie es selbst kapseln müssen, können Sie einige Pakete verwenden, wie folgt:


  • localForage: Ein einfacher Polyfill, der eine einfache Wertsyntax für clientseitige Datenspeicher bereitstellt. Im Hintergrund verwendet es IndexedDB und greift in Browsern, die IndexedDB nicht unterstützen, auf WebSQL oder localStorage zurück.
  • Dexie.js: Die Wrapper von IndexedDB ermöglichen eine schnellere Codeentwicklung durch einfache Syntax.
  • ZangoDB: Eine IndexedDB-Schnittstelle ähnlich MongoDB, die die meisten der bekannten Filter-, Projektions-, Sortier-, Aktualisierungs- und Aggregationsfunktionen von MongoDB unterstützt.
  • JsStore: Ein IndexedDB-Wrapper mit SQL-Syntax.
  • MiniMongo: MongoDB im Client-Speicher, unterstützt von Localstorage, Server-Synchronisation über HTTP. MeteorJS verwendet MiniMongo.
  • PouchDB: Ein Client, der CouchDB im Browser mit IndexedDB implementiert.
  • idb: Eine winzige (〜1.15k) Bibliothek mit dem Großteil der API ähnlich wie IndexedDB, aber mit einigen kleinen Verbesserungen, die die Benutzerfreundlichkeit der Datenbank erheblich verbessern.
  • idb-keyval: Super einfache und kleine (~600B) versprechensbasierte Schlüssel-Wert-Paare-Speicherung, implementiert mit IndexedDB.
  • sifrr-storage: Eine sehr kleine (~2 kB) versprechensbasierte clientseitige Key-Value-Datenbank. Implementierung basierend auf IndexedDB, localStorage, WebSQL und Cookies. Es kann automatisch die oben genannten unterstützten Datenbanken auswählen und sie nach Priorität verwenden.
  • lovefield: Lovefield ist eine relationale Datenbank für Webanwendungen, geschrieben in JavaScript, kann in verschiedenen Browserumgebungen ausgeführt werden und bietet eine SQL-ähnliche API, die schnell, sicher und einfach zu bedienen ist.

localForage

localForage ist ein schnelles und einfaches JavaScript-Repository. localForage verbessert das Offline-Erlebnis von Webanwendungen durch asynchronen Speicher (IndexedDB oder WebSQL) und eine einfache API ähnlich localStorage. localForage verwendet localStorage in Browsern, die keine IndexedDB- oder WebSQL-Unterstützung haben.

GitHub-Adresse:Der Hyperlink-Login ist sichtbar.
Chinesisches Tutorial:Der Hyperlink-Login ist sichtbar.

localForage stellt zwei verschiedene js-Dateien bereit, deren Unterschiede wie folgt sind:

localforage.js: eine Promise-Bibliothek, die die Lie-Implementierung enthält (Der Hyperlink-Login ist sichtbar.), ist die Datei relativ groß, und die Promise-Syntax kann in älteren Browsern verwendet werden.
localforage.nopromises.js: Es gibt keine Implementierung von Promise, nur neue Versionen von Browsern werden unterstützt.

Testcode:



(Ende)




Vorhergehend:ASP.NET Core-Abhängigkeiten (fünfundzwanzig) injizieren Lazy Lazy Lazy Initialization
Nächster:Reservieren Sie den IP-Adress-CIDR-Block des privaten IPv4-Netzwerks
 Vermieter| Veröffentlicht am 02.03.2025 19:12:18 |
Super einfache, versprechensbasierte Keyval-Speicherung, implementiert durch lightweight IndexedDB:https://github.com/jakearchibald/idb-keyval
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com