2017-05-13 14 views
0

Service Worker wird nicht registriert als im Erhalten von Fehler als 'eine schlechte HTTP-Antwortcode 404 wurde beim Abrufen des Skripts erhalten' was könnte der Schritt sein, die ich vermisse.Ich habe Service-Mitarbeiter als registriert :Service Worker Registrierung Problem

<script> 
    if('serviceWorker' in navigator) { 
    navigator.serviceWorker 
      .register('/ServiceWorker.js') 
      .then(function() { console.log("Service Worker Registered"); }); 
    } 
    </script> 

auch wir können ASPX-Seite in Servicemitarbeiter cachen? Vielen Dank.

Antwort

0

Dieses Skript innerhalb der Seite ist einfach nicht in der Lage /ServiceWorker.js zu lokalisieren und durch 1-Ding aus 2. Entweder die Datei in Ihrem Stamm Website Ordner vorhanden /ServiceWorker.js nicht oder Sie vertippt den Namen sein könnten. Es gibt keinen fehlenden Schritt und das Snippet sieht gut aus.

Die andere Frage ist ja, Sie können nicht nur statische Dateien wie Schriftarten, CSS und JS, sondern auch jede dynamische Netzwerkantwort zwischenspeichern.

Innen /ServiceWorker.js add:

self.addEventListener('fetch', function(event) { 
    console.log(event.request); 
}); 

die in Ihrem Browser einzuloggen werden die URLs trösten Sie auf Anfrage versuchen, und Sie Server, Bilder, Texte, etc .. und Sie können jede Antwortobjekt klonen und es ausdrückte in Ihrem Cache, um von dort beim nächsten Besuch serviert zu werden.

Goog Beispiel/tutorials: https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker#serving_files_from_the_cache

+0

Das war hilfreich Zouhir. Vielen Dank. – Salim

+0

Auch ich möchte fragen, wie können wir dynamische URLs in ServiceWorker.js Datei – Salim

+0

Cache Kein Problem! Der letzte Teil meiner Antwort hier unterstreicht, dass: http://Stackoverflow.com/a/43950394/4412434 – Zouhir

0

prüfen Pfad Ihres ServiceWorker.js ist zugänglich in Ihrer Datei Serviceworker zu registrieren. Andere Hand Welche Datei Sie abzurufen versuchen, sollte innerhalb des Bereichs von Service Worker liegen.

if ('serviceWorker' in navigator) { 
    window.addEventListener('load', function() { 
     navigator.serviceWorker.register('/resources/ServiceWorker.js').then(function(registration) { 
     // Registration was successful 
     console.log('ServiceWorker registration successful with scope: ', registration.scope); 
    }, function(err) { 
     // registration failed :(
      console.log('ServiceWorker registration failed: ', err); 
     }); 
    }); 
} 

Wie oben Snippet kann holen:

/resources/js/***.js //200 Ok /resources/css/***.css //200 Ok /static/***.js //404 Not found, because not in scope

0

Zwei Dinge sind möglich:

  • Entweder der Pfad/Name Serviceworker Datei nicht korrekt ist.
  • ServiceWorker-Datei ist nicht im Stammverzeichnis Ihrer Ordnerstruktur vorhanden. Es sollte auf der Wurzel vorhanden sein.