Files
Florian Zumpe 74090723c4
Sonarqube Scanner / Prepare environment (push) Successful in 13s
Sonarqube Scanner / Build and test (push) Successful in 33s
Sonarqube Scanner / SonarQube analysis (push) Successful in 1m38s
Sonarqube Scanner / Deploy to Server (push) Successful in 7s
sorted markdown and added favicon
2026-10-04 09:06:48 +02:00

5.1 KiB

App-Dateien, Strecken und Speicheranzeige

App offline speichern

Der Startschalter App offline speichern lädt ausschließlich die App-Oberfläche: HTML, CSS, JavaScript, lokale Bibliotheken, Symbole und Wichtel-Grafiken. Der Server liefert dafür /api/offline-manifest. Keine Routenliste, Streckendetails, GPX-Dateien oder Streckenmedien werden durch diesen Schalter gespeichert.

Nach einem vollständigen Download sind die App-Dateien offline verfügbar. App-Dateien aktualisieren ersetzt sie durch einen neuen vollständigen Stand. Ausschalten entfernt nur diesen App-Stand; separat gespeicherte Strecken, lokale Entwürfe und Fortschritt bleiben erhalten. Der Fragezeichen-Button neben dem Schalter erklärt die Trennung.

Beim ersten Start dieser Fassung wird ein alter automatisch erzeugter Gesamtstand aus Version 1 entfernt, weil dieser auch alle Strecken enthielt. Der neue App-Download wird danach erst durch erneutes Einschalten angefordert. Bei bereits aktivem alten Cache zuerst dessen Aktualisierungsbutton verwenden, dann neu laden, damit die neue Oberfläche aus dem Cache geladen wird.

Einzelne Strecken

In der Ansicht einer veröffentlichten Strecke gibt es drei Aktionen:

  • Strecke offline speichern lädt genau diese Strecke samt Details, Wegpunkten, GPX-Datei, Bildern und Audio für die App. Danach heißt der Button Offline-Strecke aktualisieren. Ein gescheiterter Download aktiviert keinen Teilstand; ein vorhandener vollständiger Stand bleibt erhalten.
  • Offline-Strecke entfernen entfernt nur die Browser-Kopien dieser Strecke.
  • GPX herunterladen lädt eine normale GPX-Datei in den vom Browser verwendeten Download-Ordner. Diese Datei enthält den Track und gegebenenfalls GPX-Wegpunkte, aber keine separat gespeicherten Bilder oder Audiodateien. Downloads außerhalb des Browser-Speichers lassen sich nicht durch die App löschen oder messen.

Für einen vollständigen Offline-Neustart zuerst die App-Dateien und dann die gewünschten Strecken speichern. Offline zeigt die Streckenliste nur ausdrücklich gespeicherte veröffentlichte Strecken sowie die bereits vorhandenen lokalen Entwürfe. Ohne gespeicherte Strecken bleibt die Liste der Serverstrecken leer. Die normale Online-Liste wird nicht dauerhaft übernommen. GPS-Berechtigungen werden weiterhin benötigt. Externe Karten gehören nicht zum Download.

Lokale Entwürfe bleiben im bestehenden GPX-/JSON-Speicher mit ihren lokalen Medien. Server-Schreiboperationen werden nicht offline ausgeführt.

Speicheranzeige

Startfenster und Streckenverwaltung zeigen zwei Balken:

  1. Website-Speicher: navigator.storage.estimate() liefert eine ungefähre Belegung und Browser-Quote, einschließlich OPFS, CacheStorage und IndexedDB. Die Anzeige nennt belegte und noch verfügbare MiB und warnt ab 90 Prozent. Die Werte sind Browser-Schätzungen, keine garantierte freie Festplattenkapazität.
  2. Local Storage: Die App zählt Schlüssel und Werte als UTF-16-Zeichen und zeigt die ungefähre Größe an. Weil dessen separate Grenze nicht abgefragt werden kann, bezieht sich der Balken ausdrücklich auf einen Richtwert von 5 MiB. Die tatsächliche Grenze und deren Berechnung hängen vom Browser ab. Freier Website-Speicher bedeutet deshalb nicht, dass große Bilder noch in einen lokalen Entwurf passen.

Die Anzeige aktualisiert sich beim Start, nach Strecken-/Medienänderungen, nach Offline-Downloads und beim Zurückkehren zur App. Ein manueller Aktualisierungsbutton ist vorhanden. Ein QuotaExceededError wird unabhängig von den angezeigten Schätzungen als „Speicher voll“ gemeldet. Nicht verfügbare Browser-Schätzungen werden als unbekannt angezeigt; es gibt keine schreibenden Versuche, den Speicher bis zur Grenze zu füllen.

Die Daten liegen bevorzugt im geschützten Browser-Dateisystem (OPFS), ersatzweise in CacheStorage. Die App fragt dauerhaften Speicher an; eine Ablehnung blockiert Downloads nicht. Browserbereinigung, Platzmangel oder Löschen der Website-Daten können die Kopien entfernen. HTTPS oder localhost und ein Service Worker werden für die Offline-Funktion benötigt. Die bestehende 24-Stunden-Bereinigung des optionalen Fortschrittsspeichers betrifft diese Kopien nicht.

Prüfung auf dem Gerät

  1. Archiv entpacken, Server neu starten und die neue Oberfläche laden.
  2. App-Schalter aktivieren und die Download-Bestätigung abwarten.
  3. Eine Strecke öffnen und explizit offline speichern; GPX herunterladen testen.
  4. Offline schalten und die Seite neu laden: Gespeicherte Strecke, Bilder, Audio und Spulen prüfen. Nicht gespeicherte Strecken sollen nicht erscheinen.
  5. App-Schalter ausschalten: Gespeicherte Strecke und lokale Entwürfe behalten.
  6. Eine gespeicherte Strecke entfernen: Andere Offline-Strecken behalten.
  7. Beim Ergänzen lokaler Bilder beide Speicheranzeigen und Fehlertexte prüfen.

Automatisierte Tests prüfen Manifest-Ausschlüsse, getrennte Speicherstände, OPFS/CacheStorage, Fehler und Abbruch, Audio-Byte-Ranges, Offline-API-Fallback, Upgrade eines alten Gesamtstands sowie beide Speicheranzeigen. Ein echter Browser-/Gerätetest wurde in der Ausführungsumgebung nicht durchgeführt.