Cas extrêmement simple. J'essaye de faire la mise en cache du réseau d'abord, puisque le contenu est mutable. Toutefois, le technicien de service semble servir à partir du cache disque au lieu du réseau. Il ne semble même pas vérifier avec le serveur pour les mises à jour (en chrome). Voir la capture d'écran jointe.L'extraction du service worker ne fait pas de demande réseau
Voici ma page:
<html>
<body>
<script>
function printFile() {
fetch('file.txt').then(resp => resp.text()).then(x => console.log(x));
}
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js')
.then(function(reg) {
// registration worked
console.log('Registration succeeded. Scope is ' + reg.scope);
navigator.serviceWorker.ready.then(printFile);
}).catch(function(error) {
// registration failed
console.log('Registration failed with ' + error);
});
}
</script>
</body>
</html>
et travailleur service:
self.addEventListener('install', function(event) {
event.waitUntil(self.skipWaiting());
});
self.addEventListener('activate', function(event) {
event.waitUntil(self.clients.claim());
});
self.addEventListener('fetch', function(event) {
console.log('Fetching ' + event.request.url);
event.respondWith(
fetch(event.request)
);
});
Comment puis-je forcer mon travailleur de service pour faire une demande au serveur pour récupérer une nouvelle copie de file.txt
?