2017-09-23 6 views
0

J'ai des problèmes pour enregistrer mon agent de service. Lorsque j'essaie de l'enregistrer, le navigateur se plaint que "Uncaught (en promesse) TypeError: Impossible de lire la propriété 'addAll' de undefined" Il se casse sur la ligne 6, où j'essaie d'ajouterAll dans le cache. Je pensais que la méthode ouverte crée l'objet cache, alors pourquoi est-il indéfini?Le cache dans le service worker est indéfini

"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

Est-ce que le navigateur que vous utilisez supporte 'cache api'? https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Browser_compatibility –

+0

Oui J'utilise Chorme 61 –

+0

Que tentez-vous de mettre en cache avec le second '\'? –

Répondre

1

Il semble que l'API de cache ne fonctionne pas dans le navigateur que vous utilisez pour afficher votre site.

Cette erreur est survenue lors du démarrage de mon application Web en mode débogage via Visual Studio, qui lance sa propre instance de Chrome. Pour une raison quelconque, l'API de cache ne fonctionnait pas ici.

J'ai utilisé l'adresse affichée dans une instance régulière de Chrome et tout a fonctionné correctement.

+0

Ce commentaire m'a aidé à résoudre un problème que j'ai rencontré avec des techniciens qui ne pouvaient pas utiliser le cache local, les techniciens de service dépendaient du cache local et ne fonctionnaient pas correctement dans le contexte de cette fenêtre Chrome créée par Visual Studio. – emullet