IndexedDB data can be evicted under storage pressure, especially on iOS Safari. navigator.storage.persist() asks the browser to keep our data. On Chromium+Firefox it succeeds silently when conditions allow (installed PWA, engagement heuristics); on Safari it typically grants only for installed PWAs. - persistentStorage.js: isPersisted() and requestPersistence() with graceful fallback when the Storage API is unavailable. - persistence.js: request persistence once, after the first successful save — a heuristic that works across Firefox (user gesture context) and Chromium/Safari (data-stored context). - sw.js: bump cache version, precache new file. - index.html: load new script. |
||
|---|---|---|
| .. | ||
| css | ||
| icons | ||
| js | ||
| index.html | ||
| manifest.webmanifest | ||
| sw.js | ||