Après avoir supprimé /serviceworker.js
de mon répertoire racine, Chrome exécute toujours le service worker que j'ai supprimé de ma racine Web. Comment désinstaller le technicien de maintenance de mon site Web et de Chrome afin de pouvoir me reconnecter à mon site Web?
J'ai suivi le problème jusqu'au mécanisme de cache de Service Work et je veux simplement le supprimer pour l'instant jusqu'à ce que j'ai le temps de le déboguer. Le script de connexion que j'utilise redirige vers les serveurs de Google pour qu'ils puissent se connecter à leur compte Google. Mais tout ce que je reçois de la page login.php est un message ERR_FAILED
.
Vous pouvez supprimer les travailleurs du service par programme de la manière suivante:
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
} })
Docs: getRegistrations , désinscrire
Vous pouvez également supprimer les agents de maintenance sous l'onglet Application dans Chrome Devtools.
Vous pouvez également aller à l'URL: chrome: // serviceworker-internals/et annuler l'enregistrement d'un serviceworker à partir de là.
Vous pouvez le faire via Chrome Developer Tool ainsi que par programmation .
Recherchez toutes les instances ou les agents de service en cours d'exécution en les saisissant.
chrome: // serviceworker-internals /
dans un nouvel onglet, puis sélectionnez le servicework que vous souhaitez annuler l’enregistrement.
Ouvrez les outils de développement (F12) et sélectionnez Application. Alors soit
Sélectionnez Clear Storage -> Unregister service worker.
ou
Sélectionnez Service Workers -> Choose Update on Reload
Par programmation
if(window.navigator && navigator.serviceWorker) {
navigator.serviceWorker.getRegistrations()
.then(function(registrations) {
for(let registration of registrations) {
registration.unregister();
}
});
}
Dans Google Chrome, vous pouvez accéder à Outils de développement (F12) -> Application -> Opérateur de service et unregister aux agents de maintenance de la liste de ce domaine spécifique.
Cette méthode est efficace en mode développement d'un site et la plupart du temps, ils fonctionnent sur localhost
, ce qui est peut-être nécessaire pour le développement d'autres projets.
Vous devez détecter deux API dans vos appareils: getRegistrations et getRegistration . Le service-worker ne dispose pas d'un ensemble unique d'API sur toutes les plateformes. Par exemple, certains navigateurs ont uniquement un navigator.serviceWorker.getRegistration
, pas navigator.serviceWorker.getRegistrations
. Donc, vous devriez envisager avec les deux.
En plus des réponses déjà correctes données, si vous souhaitez également supprimer le cache SW, vous pouvez utiliser:
if ('caches' in window) {
caches.keys()
.then(function(keyList) {
return Promise.all(keyList.map(function(key) {
return caches.delete(key);
}));
})
}
Vous pouvez lire plus ici (Paragraphe: "Désenregistrer un prestataire de services")
Ou via le navigateur, accédez à la section "Cache Storage" et cliquez sur le bouton "Effacer les données du site":
Pour votre information, si vous utilisez MacOS Safari browser, il existe un moyen de désenregistrer de force un opérateur de maintenance (étapes et images pour Safari 12.1):
Safari> Préférences ...> Confidentialité> Gérer les données du site Web…
Entrez le nom de domaine (ex. 'Localhost'), cliquez sur "Supprimer"
Remarque: Outre les opérateurs de service, tous les caches, cookies et bases de données de ce domaine seront également effacés.