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 Daten zuverlässig gespeichert werden, reduziert die Bandbreite und verbessert die Reaktionsfähigkeit. Die richtige Speicher-Caching-Strategie ist ein wichtiger Baustein für die Offlinenutzung des mobilen Webs.

In diesem Artikel finden Sie eine kurze Einführung in die Bewertung von Speicher-APIs und ‑Diensten. Anschließend stellen wir Ihnen eine Vergleichstabelle und einige allgemeine Hinweise zur Verfügung. In naher Zukunft werden wir weitere Ressourcen hinzufügen, mit denen Sie ausgewählte Speicherthemen noch besser verstehen können.

Speichertaxonomie

Sehen wir uns zuerst einige Dimensionen an, mit denen wir den Datenspeicher für Webanwendungen analysieren können. Später verwenden wir dieses Framework, um die vielen Speicheroptionen aufzuzählen und zu bewerten, die Webentwicklern zur Verfügung stehen.

Datenmodell

Das Modell zum Speichern von Dateneinheiten bestimmt, wie Daten intern organisiert werden. Dies wirkt sich auf die Benutzerfreundlichkeit, die Kosten und die Leistung von Speicher- und Abrufanfragen aus.

  • Strukturiert: Daten, die in Tabellen mit vordefinierten Feldern gespeichert sind, wie es für SQL-basierte Datenbankverwaltungssysteme typisch ist, eignen sich gut für flexible und dynamische Abfragen, bei denen der gesamte Umfang der Abfragetypen nicht a priori bekannt ist. Ein bekanntes Beispiel für eine strukturierte 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 mit einem eindeutigen Schlüssel indexiert sind. Schlüssel/Wert-Datenspeicher ähneln Hash-Tabellen, da sie den Zugriff auf indexierte, nicht transparente Daten in konstanter Zeit ermöglichen. Bekannte Beispiele für Schlüssel/Wert-Datenspeicher sind die Cache API im Browser und Apache Cassandra auf dem Server.

  • Bytestreams: Bei diesem einfachen Modell werden Daten als undurchsichtiger Byte-String mit variabler Länge gespeichert. Die interne Organisation wird der Anwendungsschicht überlassen. Dieses Modell eignet sich besonders für Dateisysteme und andere hierarchisch organisierte Datenblöcke. Zu den bekanntesten Beispielen für Bytestream-Datenspeicher gehören Dateisysteme und Cloud-Speicherdienste.

Persistenz

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

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

  • Gerätespeicherung:Daten in dieser Kategorie werden auf einem bestimmten Gerät sitzungs- und tab-/fensterübergreifend beibehalten. Ein Beispiel für einen Speichermechanismus mit Gerätespeicher ist die Cache API.

  • Globale Persistenz:Daten in dieser Kategorie werden über Sitzungen und Geräte hinweg beibehalten. Daher ist es die robusteste Form der Datenspeicherung. 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 ihrer Problemstellung passt. Sie sollten jedoch auch berücksichtigen, dass standardisierte und gut etablierte APIs benutzerdefinierten oder proprietären Schnittstellen vorzuziehen sind, da sie in der Regel länger verwendet und breiter unterstützt werden. Außerdem profitieren sie von einer breiteren Wissensbasis und einem größeren Entwickler-Ökosystem.

Transaktionen

Oft ist es wichtig, dass eine Reihe von zugehörigen Speichervorgängen atomar erfolgreich oder fehlschlagen. Datenbankverwaltungssysteme haben diese Funktion traditionell mit dem Transaktionsmodell unterstützt, bei dem zugehörige Aktualisierungen in beliebige Einheiten gruppiert werden können. Dies ist zwar nicht immer erforderlich, aber in einigen Problembereichen eine praktische und manchmal unverzichtbare Funktion.

Synchron/asynchron

Einige Speicher-APIs sind synchron, d. h., Speicher- oder Abrufanfragen blockieren den derzeit aktiven Thread, bis die Anfrage abgeschlossen ist. Das ist besonders in Webbrowsern aufwendig, da die Speicheranfrage den Hauptthread mit der Benutzeroberfläche teilt. Aus Effizienz- und Leistungsgründen sind asynchrone Speicher-APIs vorzuziehen.

Speicher in Chrome-Entwicklertools debuggen

In den folgenden Dokumenten erfahren Sie mehr darüber, wie Sie mit den Chrome-Entwicklertools Ihre bevorzugte Webspeicher-API prüfen und debuggen. Nicht hier aufgeführte APIs werden entweder in DevTools nicht unterstützt oder sind nicht relevant.

Wenn Sie mehrere Speicher-APIs verwenden, sehen Sie sich die Funktion „Speicherinhalt löschen“ in den DevTools an. Mit dieser Funktion können Sie mehrere Geschäfte mit nur einem Klick löschen. Weitere Informationen finden Sie unter Dienstworker, Speicher, Datenbanken und Caches leeren.

Nächste Schritte

Nachdem wir uns einige relevante Ansätze für Speichermechanismen angesehen und die beliebtesten APIs und Dienste verglichen haben, die derzeit verfügbar sind, werden wir demnächst weitere Inhalte hinzufügen, um eines oder mehrere Themen näher zu beleuchten: