2017-01-15 2 views
1

Ich lese einen Artikel über Service-Arbeiter von Google.Eine gute Strategie, um den Inhalt im Cache in der progressiven Web App auf dem neuesten Stand zu halten?

Im Kapitel „Cache und Rückholanträge“, zeigt es einen Cache ersten Ansatz:

self.addEventListener('fetch', function(event) { 
    event.respondWith(
    caches.match(event.request) 
     .then(function(response) { 
     // Cache hit - return response 
     if (response) { 
      return response; 
     } 
     return fetch(event.request); 
     } 
    ) 
); 
}); 

Es sofort Antwort, wenn Cache schlagen, aber was, wenn die Antwort geändert wurde, nachdem es zwischengespeichert? Soweit ich weiß, CacheStorage ist nicht wie Cookie, es läuft nicht ab, es sei denn gelöscht.

Gibt es eine gute Strategie, um den Cache auf dem neuesten Stand zu halten?

Antwort

1

Servicemitarbeiter und die Cache-API werden zum Zwischenspeichern verwendet statisch Assets not data; Daher dürfte sich die Reaktion kaum geändert haben, es sei denn, es gab eine Form der Bereitstellung. In diesem Fall würden Sie den Service-Mitarbeiter informieren, die nächste Version der statischen Dateien herunterzuladen (indem Sie den Cache durch Aktualisieren des Cache-Namens ungültig machen, z. B. durch einen Schluckprozess ... usw.). Oder Sie könnten sw-precache verwenden, das funktioniert (und mehr) für Sie.

Auf der anderen Seite, wenn Sie Daten zwischenspeichern, würden Sie etwas ähnliches wie IndexedDB verwenden und sobald Sie eine aktive Verbindung haben, würden Sie die neueste Version der Daten herunterladen.

Weitere Informationen: https://medium.com/dev-channel/offline-storage-for-progressive-web-apps-70d52695513c#.m7k9smyv6

Verwandte Themen