1

Ich habe Zeilen Code in meinem Dienst-worker.js im Anschluss an eine eingehende Push-Benachrichtigung auf Chrom zu handhaben und mozilla:Wie Cache zu entfernen, während firefox Push-Benachrichtigungen empfängt

var httpHeaders = new Headers(); 
    httpHeaders.append('pragma', 'no-cache'); 
    httpHeaders.append('cache-control', 'no-cache'); 

var fetchInit = { 
    method: 'GET', 
    headers: httpHeaders, 
}; 

// Version 0.1 
console.log('Started', self); 
self.addEventListener('install', function(event) { 
    self.skipWaiting(); 
    console.log('Installed', event); 
}); 
self.addEventListener('activate', function(event) { 
    console.log('Activated', event); 
}); 
var urlToRedirect=''; 
self.addEventListener('push', function(event) { 
    console.log('Push message', event); 
    //var title = 'Push message2'; 
    event.waitUntil(

    fetch("http://abc/xyz/latest.json", fetchInit).then(function(res) { 
     res.json().then(function(data) { 
     // Show notification 
       urlToRedirect = data.data.url; 
       self.registration.showNotification(data.data.title, { 
        body: data.data.body, 
        tag: data.data.tag, 
        icon: 'images/icon.png' 
       }); 

      }); 
     })); 

    //})); 
}) 

Wenn ich etwas in neuesten ändern. Json und senden Sie eine Push-Benachrichtigung, es lädt noch Daten aus der alten JSON-Datei. Wie stelle ich sicher, dass es Daten aus dem aktualisierten JSON benötigt. Dafür habe ich Pragma und Cache-Control-Header verwendet, und es funktioniert gut in Chrome, funktioniert aber nicht in Firefox. Wie man es in Firefox macht.

Antwort

1

Sie können den Parameter cache für den Anruf fetch verwenden.

Wenn Sie beispielsweise den Wert no-store festlegen, können Sie den Cache vollständig umgehen.

Lesen Sie die Beschreibung von in der specification of the Fetch API für weitere Details.