HTML5 Cache - Ist es möglich, mehrere verschiedene Caches für eine einzelne URL zu haben?

8

Jede URL kann mit einem einzelnen Cache-Manifest verknüpft werden. Aber ich möchte mehrere Cache-Manifeste, die mit derselben URL verknüpft sind. Hier ist der Grund:

Einige Dateien, die ich zwischenspeichern möchte, werden selten aktualisiert und sind groß. Jedes Mal, wenn der Cache aktualisiert wird, werden diese großen Dateien erneut heruntergeladen, obwohl sie möglicherweise nicht geändert wurden. Also möchte ich den Cache aufteilen. Ein Cache für Thesen aktualisiert selten große Dateien und ein weiterer Cache für die oft aktualisierten Lichtdateien.

Habt ihr eine Idee, wie man einen HTML5-Cache aufteilt?

    
brillout 20.10.2011, 23:39
quelle

7 Antworten

9

Der effizienteste Weg ist:

a) Verwenden Sie für alle Ressourcen, die im CACHE-Abschnitt von Manifest erwähnt werden, das Verfallsdatum für ferne Zukunft (max-age) und fügen Sie jedem CACHE-Abschnitt ein Zeitstempel-Suffix hinzu, z. B .:

%Vor%

b) Wenn sich eine der oben genannten Dateien auf dem Server ändert, aktualisieren / aktualisieren Sie das Manifest, um den Zeitstempel zu ändern. Nur die Datei mit dem geänderten Zeitstempel wird beim nächsten Mal heruntergeladen. Mission erfüllt.

Hinweis: Laden Sie die Seite im Browser zweimal neu, da beim ersten Aktualisierungsbrowser nur das Manifest heruntergeladen wird und alte zwischengespeicherte Ressourcen zum Zeichnen der Seite verwendet werden. Dies wird getan, um die Anzeige der Seite zu beschleunigen (es gibt Tricks, um dieses Problem der doppelten Aktualisierung zu behandeln, aber sie sind außerhalb des Bereichs Ihrer Frage)

Weitere Informationen finden Sie in diesem langen aber besten Artikel, den ich je auf appcache gesehen habe .

    
Gene Vayngrib 20.12.2012, 03:10
quelle
2

Verwenden Sie einen iframe

Das Cache-Manifest Ihrer Seite würde die Light-Dateien enthalten und das Cache-Manifest eines Iframes, das von dieser Seite geladen wird, würde die großen Dateien enthalten

Bei chrome wird der Anwendungscache des iframes auch für die Seite verwendet. Ich habe diese Methode noch nicht in anderen Browsern getestet.

Sehen Sie sich ein Live-Beispiel auf Ссылка an. Wenn Sie chrome verwenden, sehen Sie dessen geteilten Cache unter chrome: // appcache-internals /

    
brillout 15.11.2011 16:29
quelle
2

Wenn die Manifestdatei geändert wird und die Dateien des Anwendungscaches erneut heruntergeladen werden, gelten die normalen HTTP-Cachingregeln weiterhin. Das heißt, wenn Sie die richtigen HTTP-Caching-Header für diese großen Dateien festlegen, erhalten Sie eine 304, sodass diese Dateien nicht erneut heruntergeladen werden. Daher ist es nicht notwendig, den Anwendungscache zu teilen.

    
michielve 22.07.2012 12:29
quelle
1

Vielleicht eine Antwort, aber ich möchte mehr Licht auf meine Ergebnisse werfen, wenn ich meine eigene Webapplikation überprüfe.

Ich habe festgestellt, dass ich zwei iframes (manifest_framework) und (manifest_media) zum Laden der Manifeste verwenden kann, aber ich weiß immer noch nicht genau, wie sie ausgerichtet sind, aber ich hatte nur begrenzten Erfolg.

manifest_framework:

%Vor%

manifest_media:

%Vor%

./ index.php ist die Seite, die 'landing page', die selbst nicht zwischengespeichert wird, aber offline in webapp.php zurückfällt.

Was ich nicht verstehe ist, wie diese auf die webapp.php-Seite verlinken. Ich stelle fest, dass ich nur auf den einen oder anderen Manifest-Cache zugreifen kann. Das obige funktioniert in mobilen Safari, die Medien würden zwischengespeichert werden, und Image aber nicht unbedingt die JS oder Bilder im Framework manifestieren.

Hat jemand mehr Beispiele, in denen mehrere Manifeste von der einen URL / Seite referenziert werden?

    
vivvvi 14.07.2014 12:28
quelle
0

Die W3C-Arbeitsgruppe hat das Dateisystem api aufgegeben und sollte daher NICHT MEHR VERWENDET WERDEN.

Wir werden wahrscheinlich feststellen, dass es von der nächsten Chrome-Version abstürzt.

Ссылка

    
vivvvi 31.08.2014 02:59
quelle
-1
%Vor%     
Digital Robot Gorilla 21.10.2011 00:05
quelle
-1

Wenn der Iframe-Trick nicht funktioniert, verwenden Sie die HTML5-FileSystem-API

Siehe Ссылка

    
brillout 29.04.2012 16:29
quelle

Tags und Links