Gibt es eine Möglichkeit, alle Browser registrierte Service-Mitarbeiter aufzulisten? Lässt sagen, dass ich ein paar Servicearbeiter registriert/installiert habe. kann ich über js eine Liste der Dateinamen erhalten?Liste chromes registrierte Service-Mitarbeiter
Antwort
Anscheinend habe ich zwei Möglichkeiten gefunden, die für mich (für Chrom) gut funktioniert: sind Kürzel Befehl:
chrome://serviceworker-internals/
andere ist:
gehen zu Developers Tool -> Resources -> Service Workers
Es gibt keine Möglichkeit, "alle im Browser registrierten" Service Worker programmgesteuert von einer Webseite zu erhalten, da eine Webseite nur auf Service Worker zugreifen kann, die für ihren Bereich registriert sind. Aber wenn Sie nach einer Möglichkeit, diejenigen zu bekommen, dann navigator.serviceWorker.getRegistrations
rufen ein Versprechen zu erhalten, die der registrierten Service-Mitarbeiter auf ein Array löst:
navigator.serviceWorker.getRegistrations().then(function(registrations) {
registrations.forEach(function(v) { console.log('service worker: ' + v) });
});
Wenn Sie wirklich wollen „alle Browser des“ eingetragene Dienstleistungs Arbeiter, können Sie es nicht programmatisch tun, indem Sie diese URLs öffnen:
Firefox
about:serviceworkers
Chrome
chrome://serviceworker-internals/
Opera
browser://serviceworker-internals
Siehe auch: Is ServiceWorker Ready? für eine up-to-date Liste der Debug-Helfer.
(. Vermutlich gibt es auch eine Möglichkeit, dies in einer Firefox-Erweiterung programmatisch zu tun)
Soweit ich weiß, gibt es keine API, um registrierte Arbeiter aufzulisten, da Web Workers nur begrenzten Zugriff auf 'window'' document' und 'parent' haben. Eine einfache Problemumgehung wäre, Arbeiterreferenzen in ein JS-Objekt zu speichern ... –
Es würde helfen, genau zu wissen, was Sie mit "allen Browsern" und "I" in Ihrer Frage meinen. Möchten Sie wirklich, dass alle Service-Mitarbeiter auf jeder Seite in einem beliebigen Bereich registriert sind? Oder wollen Sie nur, dass alle Service-Mitarbeiter von Seiten in einem bestimmten Umfang registriert werden? Und ist "ich" eine Firefox/Chrome-Erweiterung oder eine Webseite? –