2017-09-23 4 views
0

Ich habe Probleme bei der Registrierung meiner Service-Mitarbeiter. Wenn ich versuche, es zu registrieren, beklagt sich der Browser, dass "Uncaught (in Versprechung) TypeError: Eigenschaft" addAll "von undefined nicht lesen kann" Es bricht in Zeile 6, wo ich versuche, All dem Cache hinzuzufügen. Ich dachte, die Open-Methode erstellt das Cache-Objekt, also warum ist es nicht definiert?Cache im Service-Mitarbeiter ist nicht definiert

"use strict"; 

self.addEventListener('install', event => { 
    event.waitUntil(
     caches.open('test').then(function(cache) { 
     return cache.addAll([ 
      '/index.html', 
      '/' 
     ]); 
    }) 
); 
}); 

self.addEventListener('activate', event => { 
event.waitUntil(self.clients.claim()); 
}); 

self.addEventListener('fetch', event => { 
event.respondWith(
    caches.match(event.request).then(response => { 
     return response || fetch(event.request); 
    }) 
); 
}); 
+0

Unterstützt der Browser, den Sie verwenden, 'cache api'? https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Browser_compatibility –

+0

Ja, ich benutze Chorme 61 –

+0

Was versuchst du mit dem zweiten '\' zu cachen? –

Antwort

1

Es scheint, dass die Cache-API nicht in dem Browser funktioniert, den Sie zum Anzeigen Ihrer Site verwenden.

Ich hatte diesen Fehler beim Starten meiner Web-App im Debug-Modus durch Visual Studio, die eine eigene Instanz von Chrome startet. Aus irgendeinem Grund funktionierte die Cache-API dort nicht.

Ich verwendete die dort in einer regulären Instanz von Chrome gesehene Adresse und alles funktionierte korrekt.

+0

Dieser Kommentar hat mir geholfen, ein Problem zu lösen, bei dem Service-Mitarbeiter keinen lokalen Cache verwenden konnten, Service-Mitarbeiter vom lokalen Cache abhängig sind und im Kontext dieses von Visual Studio erstellten Chrome-Fensters nicht ordnungsgemäß funktionieren. – emullet

Verwandte Themen