Webspeicher – Übersicht

Marc Cohen

Es ist wichtig, die richtigen Speichermechanismen auszuwählen, sowohl für den lokalen Gerätespeicher als auch für den cloudbasierten Serverspeicher. Eine gute Speicher-Engine sorgt dafür, dass Ihre Informationen zuverlässig gespeichert werden, reduziert die Bandbreite und verbessert die Reaktionsfähigkeit. Die richtige Speicher-Caching-Strategie ist ein wesentlicher Baustein, um mobiles Offline-Web zu ermöglichen.

Dieser Artikel bietet eine kurze Grundlage für die Bewertung von Speicher-APIs und -Diensten. Anschließend stellen wir eine Vergleichstabelle und einige allgemeine Informationen bereit. Wir planen, in naher Zukunft Ressourcen hinzuzufügen, um ausgewählte Speicherthemen genauer zu erläutern.

Speichertaxonomie

Sehen wir uns zuerst einige Dimensionen an, mit denen wir den Datenspeicher für Web-Apps analysieren können. Später verwenden wir dieses Framework, um die vielen Speicheroptionen für Webentwickler aufzuführen und zu bewerten.

Datenmodell

Das Modell zum Speichern von Dateneinheiten bestimmt, wie die Daten intern organisiert werden, was sich auf Nutzerfreundlichkeit, Kosten und Leistung von Speicher- und Abrufanfragen auswirkt.

  • Strukturiert: Daten, die in Tabellen mit vordefinierten Feldern gespeichert sind, wie es typisch für SQL-basierte Datenbankverwaltungssysteme ist, eignen sich gut für flexible und dynamische Abfragen, bei denen nicht vorher alle Abfragetypen bekannt sind. Ein bekanntes Beispiel für einen strukturierten Datenspeicher im Browser ist IndexedDB.

  • Schlüssel/Wert:Schlüssel/Wert-Datenspeicher und zugehörige NoSQL-Datenbanken bieten die Möglichkeit, unstrukturierte Daten zu speichern und abzurufen, die durch einen eindeutigen Schlüssel indexiert wurden. Schlüssel/Wert-Datenspeicher sind wie Hash-Tabellen insofern, als sie konstanten Zugriff auf indexierte, intransparente Daten ermöglichen. Wichtige Beispiele für Schlüssel/Wert-Datenspeicher sind die Cache API im Browser und Apache Cassandra auf dem Server.

  • Byte Streams: Dieses einfache Modell speichert Daten als einen intransparenten Bytestring mit variabler Länge, sodass die Anwendungsebene jede Form interner Organisation erhält. Dieses Modell eignet sich besonders gut für Dateisysteme und andere hierarchisch organisierte Daten-Blobs. Wichtige Beispiele für Bytestream-Datenspeicher sind Dateisysteme und Cloud-Speicherdienste.

Persistenz

Speichermethoden für Webanwendungen können entsprechend dem Umfang analysiert werden, in dem Daten persistent gemacht werden.

  • Sitzungspersistenz: Daten in dieser Kategorie werden nur so lange aufbewahrt, wie eine einzelne Websitzung oder ein Browsertab aktiv bleibt. Ein Beispiel für einen Speichermechanismus mit Sitzungspersistenz ist die Session Storage API.

  • Gerätepersistenz: Daten in dieser Kategorie werden über Sitzungen und Browsertabs/-fenster auf einem bestimmten Gerät hinweg aufbewahrt. Ein Beispiel für einen Speichermechanismus mit Gerätepersistenz ist die Cache API.

  • Globale Persistenz:Daten in dieser Kategorie werden sitzungs- und geräteübergreifend aufbewahrt. Daher stellt sie die zuverlässigste Form der Datenpersistenz dar. Ein Beispiel für einen Speichermechanismus mit globaler Persistenz ist Google Cloud Storage.

Unterstützte Browser

Entwickler sollten eine API auswählen, die am besten zu ihrem Problembereich passt. Sie sollten aber auch berücksichtigen, dass standardisierte und gut etablierte APIs gegenüber benutzerdefinierten oder proprietären Schnittstellen besser sind, da sie in der Regel länger gedauert und umfassender unterstützt werden. Außerdem haben sie möglicherweise eine umfassendere Wissensdatenbank und ein umfangreicheres Entwicklerumfeld.

Transaktionen

Häufig ist es wichtig, dass eine Sammlung verwandter Speichervorgänge atomar erfolgreich ist oder fehlschlägt. Datenbankverwaltungssysteme unterstützen diese Funktion bisher mithilfe des Transaktionsmodells, bei dem zugehörige Aktualisierungen in beliebige Einheiten gruppiert werden können. Dies ist zwar nicht immer erforderlich, aber in einigen Problemdomains eine praktische und manchmal unverzichtbare Funktion.

Synchronisieren/asynchron

Einige Storage APIs sind synchron in dem Sinne, dass Speicher- oder Abrufanfragen den aktuell aktiven Thread blockieren, bis die Anfrage abgeschlossen ist. Dies ist besonders lästig in Webbrowsern, wo die Speicheranfrage den Hauptthread für die UI freigibt. Aus Effizienz- und Leistungsgründen sind asynchrone Storage-APIs zu bevorzugen.

Speicherfehler in den Chrome-Entwicklertools beheben

In den folgenden Dokumenten erfahren Sie mehr darüber, wie Sie mit den Chrome-Entwicklertools Ihre bevorzugte Web Storage API untersuchen und debuggen können. APIs, die hier nicht erwähnt werden, werden entweder von den Entwicklertools nicht unterstützt oder sind nicht anwendbar.

Wenn Sie mehrere Speicher-APIs verwenden, sollten Sie die Funktion „Speicherinhalt löschen“ der Entwicklertools ausprobieren. Mit dieser Funktion können Sie mehrere Speicher mit einem einzigen Klick löschen. Weitere Informationen finden Sie unter Dienst-Worker, Speicher, Datenbanken und Caches löschen.

Weitere Informationen

Nachdem wir uns einige relevante Denkweisen zu Speichermechanismen angesehen und die beliebtesten APIs und Dienste miteinander verglichen haben, werden wir bald weitere Inhalte hinzufügen, um ein oder mehrere Themen, die Sie interessieren, genauer zu betrachten: