fix(service-worker): prevent multiple unregister attempts in session

- Updated the unregister script to check if an attempt to unregister service workers has already been made in the current session, preventing unnecessary reloads and improving user experience.
- If service workers are registered, the script will perform a hard reload; otherwise, it will unregister any pending registrations.
This commit is contained in:
chamiakJ
2025-05-14 18:34:08 +05:30
parent 7ac35bfdbc
commit 0e1314d183

View File

@@ -1,13 +1,18 @@
if ('serviceWorker' in navigator) { if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(function(registrations) { // Check if we've already attempted to unregister in this session
if (registrations.length > 0) { if (!sessionStorage.getItem('swUnregisterAttempted')) {
// If there are registered service workers, do a hard reload first navigator.serviceWorker.getRegistrations().then(function(registrations) {
window.location.reload(true); if (registrations.length > 0) {
} else { // Mark that we've attempted to unregister
// If no service workers are registered, unregister any that might be pending sessionStorage.setItem('swUnregisterAttempted', 'true');
for(let registration of registrations) { // If there are registered service workers, do a hard reload first
registration.unregister(); window.location.reload(true);
} else {
// If no service workers are registered, unregister any that might be pending
for(let registration of registrations) {
registration.unregister();
}
} }
} });
}); }
} }