Fix: SW-Update doppelter Reload nach force-update — controllerchange konsumiert by_skip_sw_reload Flag (SW by-v887)
statechange-activated und controllerchange feuern beide beim SW-Update. statechange konsumierte den Flag und controllerchange reloadete trotzdem. Jetzt prüft statechange nur, controllerchange konsumiert.
This commit is contained in:
parent
3967544de7
commit
b8f70eb2cd
4 changed files with 10 additions and 8 deletions
|
|
@ -637,11 +637,8 @@
|
|||
if (!sw) return;
|
||||
sw.addEventListener('statechange', () => {
|
||||
if (sw.state === 'activated') {
|
||||
// Kein zweiter Reload nach force-update
|
||||
if (sessionStorage.getItem('by_skip_sw_reload')) {
|
||||
sessionStorage.removeItem('by_skip_sw_reload');
|
||||
return;
|
||||
}
|
||||
// Flag nur prüfen, nicht konsumieren — controllerchange konsumiert ihn
|
||||
if (sessionStorage.getItem('by_skip_sw_reload')) return;
|
||||
window.location.replace('/?_t=' + Date.now());
|
||||
}
|
||||
});
|
||||
|
|
@ -663,7 +660,12 @@
|
|||
});
|
||||
|
||||
// Backup: controllerchange (falls updatefound nicht feuert)
|
||||
// Konsumiert auch den by_skip_sw_reload-Flag (statechange prüft ihn nur)
|
||||
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
||||
if (sessionStorage.getItem('by_skip_sw_reload')) {
|
||||
sessionStorage.removeItem('by_skip_sw_reload');
|
||||
return;
|
||||
}
|
||||
window.location.replace('/?_t=' + Date.now());
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue