Eine Notiz-App öffnet sich ohne Internet, zeigt ihre Oberfläche und nimmt neue Einträge an. Sie fühlt sich dadurch wie ein Programm an, das vollständig auf dem Rechner lebt. Bei einer Webapp können Oberfläche und Notizen tatsächlich lokal im Browser liegen. Wie lange sie dort erhalten bleiben und wie sie auf einen anderen Rechner gelangen, sind jedoch eigene technische Fragen.
Die Entwicklung der Browser zeigt diese Trennung über mehrere Jahre. WebKit begrenzte 2020 bestimmte Website-Daten im Rahmen seines Schutzes gegen Tracking. 2023 beschrieb es neue Speicherregeln und die Unterstützung der Storage API. Google erläutert für progressive Webapps, wie lokale Datenbanken und Caches den Offlinebetrieb ermöglichen. Die aktuelle MDN-Dokumentation unterscheidet zwischen Speicher nach dem Best-effort-Prinzip und persistentem Speicher. WebKitWebKitGoogle web.devMDN
Daraus folgt eine praktische These: Eine gute Offline-App braucht neben einer funktionierenden Oberfläche auch einen nachvollziehbaren Ausweg für wichtige Nutzerdaten. Lokales Arbeiten, Schutz vor automatischem Entfernen und eine unabhängige Sicherung lösen drei unterschiedliche Aufgaben.
Die Oberfläche und die Notizen wohnen in verschiedenen Schubladen
Eine progressive Webapp, kurz PWA, kann Ressourcen im Cache speichern. Dazu gehören etwa die Dateien, die ihre Oberfläche laden. Für strukturierte Nutzerdaten wird häufig IndexedDB verwendet, eine Datenbankfunktion des Browsers. Googles PWA-Dokumentation trennt diese Rollen: Cache Storage für über URLs geladene Ressourcen, IndexedDB für die eigentlichen strukturierten Daten. Google web.dev

Diese Aufteilung erklärt eine alltägliche Beobachtung. Eine App kann ihre Oberfläche anzeigen, obwohl ein bestimmter Inhalt noch nicht verfügbar ist. Umgekehrt können wichtige Nutzerdaten gespeichert sein, während für eine neue Funktion noch Ressourcen geladen werden müssen. „Funktioniert offline“ sollte daher die Aufgaben bezeichnen, die ohne Verbindung tatsächlich möglich sind.
Für eine Notiz-App wäre etwa zu prüfen, ob bestehende Einträge gelesen und neue Einträge gespeichert werden können. Für einen Reiseplaner kann die Oberfläche verfügbar sein, während aktuelle Verbindungen weiterhin Netz brauchen. Die PWA-Technik liefert die Werkzeuge. Die Anwendung entscheidet, welche Daten und Funktionen sie mit diesen Werkzeugen vorbereitet.
Lokaler Browser-Speicher besitzt einen zuständigen Ursprung
Browser ordnen viele gespeicherte Daten einem Ursprung, dem „Origin“, zu. Dazu gehören Schema, Hostname und Port der Website. MDN erklärt, dass die Speicherverwaltung in der Regel für diesen Ursprung gilt. Mehrere Anwendungen am selben Ursprung können deshalb denselben Speicherrahmen teilen. MDN
Das ist ein Sicherheits- und Verwaltungsprinzip, kein gewöhnlicher frei verschiebbarer Dokumentordner. Eine App erhält Zugriff auf ihre Daten über die passenden Browserfunktionen. Eine andere Adresse oder ein anderes Browserprofil besitzt nicht automatisch denselben Bestand.
Daraus entsteht für Nutzer eine wichtige Unterscheidung. Dass die Bytes auf dem eigenen Datenträger liegen, bedeutet nicht, dass man sie wie einen exportierten Textordner behandeln kann. Die Verbindung zwischen App, Ursprung und Browserprofil gehört zur Nutzbarkeit des Bestands. Beim Rechnerwechsel oder beim Aufräumen des Browsers zählt deshalb, welchen Übertragungsweg die App anbietet.
Ein unabhängiger Export macht diese Bindung überschaubarer. Er kann die gewünschten Daten in eine Datei schreiben, die außerhalb des verwalteten Website-Speichers liegt. Ob diese Datei später wieder eingelesen werden kann, hängt vom vorgesehenen Format und Import ab. Export und Wiederherstellung sollten daher als zusammengehörige Funktionen betrachtet werden.
Speicherregeln haben sich mit den Aufgaben des Webs verändert
WebKit beschrieb 2020, warum Tracking-Skripte nach Einschränkungen bei Cookies auf andere Speichermöglichkeiten auswichen. Intelligent Tracking Prevention bezog deshalb weitere durch Skripte beschreibbare Speicherformen ein. Die damals erläuterte Grenze bezog sich auf sieben Tage Safari-Nutzung ohne Interaktion mit der betreffenden Website. WebKit unterschied davon ausdrücklich Webapps, die zum Home-Bildschirm hinzugefügt wurden. WebKit
Dieses Beispiel zeigt einen echten Zielkonflikt. Langfristig gespeicherte Zustände sind für eine lokale App nützlich. Dieselben allgemeinen Speichermöglichkeiten können auch Wiedererkennung und Tracking unterstützen. Eine Browserregel muss daher unterschiedliche Nutzungssituationen berücksichtigen. Für eine Anwendung genügt es nicht, nur zu wissen, dass eine Speicher-API existiert.
2023 erläuterte WebKit die neueren Quoten und den persistenten Modus. Websites können den geschätzten Speicherverbrauch abfragen, prüfen, ob persistenter Speicher vorliegt, und ihn anfordern. Die Entscheidung über eine Anfrage trifft der Browser anhand seiner Regeln. WebKit nennt unter anderem die Nutzung als Home-Screen-Webapp als mögliches Signal. WebKit
Google beschreibt ebenfalls, dass PWAs ihren Speicher aktiv verwalten müssen. Offlinefähigkeit umfasst nicht allein das erfolgreiche Ablegen eines Eintrags. Sie umfasst auch die Behandlung von Schreibfehlern, das verfügbare Kontingent und die Frage nach der Dauerhaftigkeit des Bestands. Google web.dev
Persistenz schützt vor einem bestimmten Verlustweg
Nach MDN werden Daten standardmäßig nach dem Best-effort-Prinzip gespeichert. Unter bestimmten Bedingungen kann der Browser solche Daten entfernen, etwa bei Speicherdruck. Mit gewährtem persistentem Speicher werden sie vor dieser automatischen Entfernung geschützt. Nutzer können Website-Daten weiterhin über die Browser-Einstellungen löschen. MDN
Das Gegenargument zu einer dramatischen Verlustgeschichte steht in derselben Dokumentation: Bei regelmäßig besuchten Websites ist automatische Entfernung nach den dort genannten Untersuchungen selten. Eine Offline-App verliert ihre Daten also nicht zwangsläufig beim nächsten Browserstart. Die technische Unterscheidung bleibt trotzdem relevant, sobald dort wichtige eigene Informationen ohne weitere Kopie liegen.
Persistenz ist deshalb ein sinnvoller Schutz innerhalb des Browsers. Eine Sicherung außerhalb dieses Bestands schützt einen anderen Fall. Ein gelöschtes Profil, ein defektes Gerät oder ein geplanter Wechsel werden durch eine Speicherzusage an denselben Browser nicht automatisch zu einem Übertragungsablauf. Dafür braucht die Anwendung Synchronisation, Export oder eine andere ausdrücklich vorgesehene Wiederherstellung.
Auch eine Synchronisation sollte konkret beschrieben werden. Sie kann Daten auf mehreren Geräten verfügbar machen. Welche Änderungen und Löschungen dabei übertragen werden und welche älteren Stände verfügbar sind, ist Teil des jeweiligen Dienstes. Die bloße Anzeige eines Cloudsymbols erklärt diesen Ablauf noch nicht.
Der gute Ausweg lässt sich mit einer kleinen Probe finden
Für eine App mit wichtigen eigenen Daten lohnt eine überschaubare Prüfung, bevor der Bestand groß wird. Ein Eintrag wird gespeichert, die App ohne Verbindung erneut geöffnet und der Eintrag gelesen. Danach wird ein Export erzeugt und in einer geeigneten getrennten Testumgebung nach der Anleitung der App wieder eingelesen. So werden Offlinefunktion und Übertragbarkeit als zwei getrennte Aufgaben sichtbar.
Dabei geht es um die tatsächlichen benötigten Inhalte. Eine exportierte Liste der Notizüberschriften kann korrekt sein und dennoch die Anhänge auslassen, die für den Nutzer wichtig sind. Ein brauchbarer Export beschreibt deshalb seinen Umfang und sein Format. Der Import zeigt, welche Teile wieder nutzbar werden.
Webapps haben in den vergangenen Jahren einen erheblichen Teil des Wegs von der Website zum lokal arbeitenden Werkzeug zurückgelegt. Caches, Datenbanken und persistenter Speicher machen das möglich. Für persönliche Daten wird die Qualität dieses Werkzeugs daran erkennbar, ob es seinen Bestand verständlich behandelt und einen überprüfbaren Weg aus der App heraus anbietet. Dann bleibt die lokale Bequemlichkeit auch beim nächsten Rechnerwechsel nützlich.
Quellen
- WebKit: Full Third-Party Cookie Blocking and More (2020-03-24)
- WebKit: Updates to Storage Policy (2023-08-10)
- Google web.dev: Offline data
- MDN: Storage quotas and eviction criteria
Für diesen Artikel wurden KI-gestützte Recherche- und Editierwerkzeuge verwendet. Der Inhalt wurde redaktionell geprüft.