Zum Hauptinhalt Zur Navigation

Client-Side-DB: So geht performante SQL-Storage im Browser für Web-Apps

Mit einer Kombination von SQLite Webassembly und dem Origin Private File System lässt sich SQL-Storage auf Client-Seite performant realisieren.
/ Boris Mayer
2 Kommentare News folgen (öffnet im neuen Fenster)
Immer rein in das Schubladenchaos - so lief Client Side Storage für Web-Apps bisher. Aber es geht auch mit relationaler Datenbank. (Bild: Stan Wiechers via flickr)
Immer rein in das Schubladenchaos - so lief Client Side Storage für Web-Apps bisher. Aber es geht auch mit relationaler Datenbank. Bild: Stan Wiechers via flickr / CC-BY-SA 2.0

Auf dem Chrome Developers Blog(öffnet im neuen Fenster) ist vorgestellt worden, wie sich mit einer Kombination von SQLite für Webassembly & Javascript(öffnet im neuen Fenster) und dem Origin Private File System performanter SQL Storage für Web-Apps auf Client-Seite umsetzen lässt - inklusive Beispielcode und Konfigurierungsanleitung.

Die Kombination soll eine Lücke füllen, die entstand, nachdem WebSQL(öffnet im neuen Fenster) schon 2010 mitten im W3C-Recommendation-Prozess scheiterte. Trotzdem wurde WebSQL erst 2019 aus der Browser-Engine Webkit entfernt, während die Technik in Firefox Gecko nie eingebaut wurde. Deshalb müssen Web-Apps Daten als Key-Value-Paare speichern, wenn sie diese auf dem Client vorhalten wollen. Damit kann vermieden werden, die gleichen Daten bei jedem Seitenaufruf neu vom Server abzurufen - Key-Value-Paare haben aber den Nachteil, nur schlecht durchsuchbar zu sein.

Das bringt das Origin Private File System

Das Origin Private File System ist Teil der File System Access API und nutzt eine Datei, die nach der Anforderung durch die Web-App nur Inhalten vom Ursprung dieser Web-App zur Verfügung steht. Dadurch ist es möglich, sie hochgradig leistungsoptimiert zu benutzen, insbesondere durch direkten und exklusiven Zugriff.

Diese Performance macht es möglich, dass Queries auch über relativ große Datenmengen sinnvoll ausgeführt werden können, ohne dass lange Wartezeiten für die Nutzer entstehen. Das könnte ganz neue Anwendungsfälle sinnvoll werden lassen.

Richtig persistent sind die Daten aber nicht

Auch für die mit dem vorgestellten System abgelegten Daten gilt, dass die Web-App sie nicht als dauerhaft persistiert betrachten kann. Per Origin Private File System abgelegte Daten sind nach wie vor Daten einer Webseite, die von Nutzern gelöscht werden können. Und wenn bei der nächsten Verwendung der Web-App ein anderer Browser oder gar ein anderer Computer verwendet wird, ist der gefüllte Data Store dort sowieso nicht vorhanden.


Relevante Themen