2017-06-08 2 views
0

Wenn ich einen Anruf an navigator.storage.persist mache, werden Einträge, die bereits zu einem regulären Cache hinzugefügt (und noch nicht gelöscht wurden), automatisch persistent oder muss ein neuer Cache erstellt werden (z. B. durch Kopieren des alten nicht persistenten Cache in einen neu erstellt (und jetzt, Benutzerrechte gegeben, persistent) eins)?Werden `` navigator.storage.persist`'große reguläre Cache-Einträge in persistente?

Ich möchte, dass meine App mit dem regelmäßigen Zwischenspeichern kritischer Dateien anfängt und danach eine Persistenz fordert und einen Service Worker im Idealfall auf install anmeldet, ohne neue Anforderungen zu stellen (es sei denn, der Benutzer hat den Cache schon irgendwie gelöscht) bevor der Arbeiter installiert wird).

Antwort

1

Die folgenden Auszüge aus den Abschnitten 3 & 3.1 des specification sind relevant:

... Jede Ursprung hat Einheit eine zugehörige Speicherstelle. Ein Site-Speicher Einheit enthält eine einzelne Box.

Eine Schachtel hat Modus, der entweder "best-effort" oder "persistent" ist ...

Eine Box betrachtet wird eine atomare Einheit. Wenn eine Box von dem Benutzer-Agent gelöscht wird, muss es in seiner Gesamtheit gelöscht werden.

Es gibt also eine einzige konzeptionelle "Box" für den Speicher Ihres Ursprungs, und dieser Ursprung wird auf eine Alles-oder-Nichts-Weise gelöscht. Dies würde für Artikel gelten, die entweder vor oder nach dem "Übergang" von "Best-Effort" zu "Persistent" gespeichert wurden.

Das ist alles, um zu sagen, dass Sie Dinge früh im Cache speichern können, und dann später die Persistenz anfordern.

Verwandte Themen