2012-11-26 17 views
5

Die HTML5-Anwendungscache-API erfordert, dass der Browser alle im CACHE-Abschnitt der Manifestdatei deklarierten Dateien erneut lädt (wenn die Manifestdatei geändert wurde und update für die applicationCache-API aufgerufen wird). .Selektives Löschen von Elementen im HTML5-Anwendungscache

Meine Manifestdatei enthält Tausende von Einträgen. Gibt es irgendwelche Tricks, um dem Browser mitzuteilen, dass er nur geänderte Dateien neu laden soll?

Antwort

4

Ich sah ähnliche Probleme durch die fehlende Kontrolle über das Caching-Verhalten von Dateien im Cache-Manifest aufgeführt. Es stellt sich heraus, dass Sie mit iFrames die Kontrolle über diesen Prozess erlangen können.

Die Strategie besteht darin, Ihre Tausende von Dateien, die in Ihrem Haupt-Cache-Manifest aufgelistet sind, in separate (und besser verwaltbare Cache-Manifeste) aufzuteilen und eine Menge Dummy-HTML-Seiten zu erstellen, die jeweils auf ein Cache-Manifest verweisen. Dann fügen Sie für jedes HTML-Dummy ein iFrame hinzu, das es mit Ihrem HTML-Hauptdokument verknüpft. Sie können die iFrames in ein unsichtbares div einfügen, wodurch der Trick für den Benutzer unsichtbar wird.

Wenn jedes iFrame geladen wird, prüft es sein individuelles Cache-Manifest. Wenn sich Dateien in diesem Cache-Manifest geändert haben, speichert der iFrame nur seine Untergruppe von Dateien zwischen. Sie können zusammengehörige Dateien intelligent gruppieren, je nachdem, wie viel Sie erwarten, dass sie sich ändern.

Noch besser ist, dass Sie iFrames zu jedem Zeitpunkt der Interaktion des Benutzers dynamisch in Ihren Haupt-HTML einfügen können, und nur wenn der iFrame geladen wird, wird der Caching-Fortschritt ausgelöst.

Verwandte Themen