UX: Offline-Pfote misst echte Offline-Bereitschaft, SW by-v1087

Steps so umverteilt dass sie genau die Datentypen abdecken die der
User offline braucht — auch wenn er die Seiten nie geöffnet hat:

  1 App-Grundgerüst     CSS + Core-JS
  2 Wichtige Seiten     alle 10 Page-Module (precached via SW)
  3 Hund-Daten          Profil + Tagebuch + Gesundheit
  4 Weitere Listen      Ausgaben + Routen + Notizen
  5 Karten-Kacheln      OSM-Tiles im Umkreis

Automatischer Prefetch im _prefetchData() beim App-Start:
- /api/expenses · /api/routes · /api/notes (Step 4)
- /api/dogs/{id}/health · /api/dogs/{id}/diary (Step 3)
- Tiles via _prefetchTiles wenn GPS-Permission da (Step 5)

Wiki, Übungen, Streak, Wetter werden NICHT mehr vorgeladen — kommen
beim normalen Welten-Besuch ins Cache, sind aber nicht Pflicht für
'offline-bereit'.

setTimeout-Retry nach 3s: aktiver Hund ist beim ersten Init oft
noch nicht in _appState, danach kommt der Health/Diary-Prefetch.
This commit is contained in:
rene 2026-05-26 15:34:42 +02:00
parent 307b4a5486
commit 87462cb2fe
5 changed files with 54 additions and 42 deletions

View file

@ -101,9 +101,9 @@
</script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1086">
<link rel="stylesheet" href="/css/layout.css?v=1086">
<link rel="stylesheet" href="/css/components.css?v=1086">
<link rel="stylesheet" href="/css/design-system.css?v=1087">
<link rel="stylesheet" href="/css/layout.css?v=1087">
<link rel="stylesheet" href="/css/components.css?v=1087">
</head>
<body>
@ -625,11 +625,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1086"></script>
<script src="/js/ui.js?v=1086"></script>
<script src="/js/app.js?v=1086"></script>
<script src="/js/worlds.js?v=1086"></script>
<script src="/js/offline-indicator.js?v=1086"></script>
<script src="/js/api.js?v=1087"></script>
<script src="/js/ui.js?v=1087"></script>
<script src="/js/app.js?v=1087"></script>
<script src="/js/worlds.js?v=1087"></script>
<script src="/js/offline-indicator.js?v=1087"></script>
<!-- Feature-Seiten werden lazy geladen -->