Frage

Für Leistungszwecke möchte ich, dass einige meiner Webseiten Ressourcen verwenden, die für die Offline -Verwendung zwischengespeichert wurden (Bilder, CSS usw.), aber die Seite selbst nicht zwischengespeichert werden, da der Inhalt dynamisch generiert wird.

Eine Möglichkeit, dies zu tun, besteht darin, meine Seiten so neu zu gestalten, damit sie den dynamischen Inhalt über Ajax laden oder Dinge in LocalStorage nachschlagen. Details können variieren, aber im Großen und Ganzen so etwas.

Wenn es möglich ist, würde ich lieber einen Weg finden, den Browser einfach anzuweisen, zwischengespeicherte Ressourcen (wiederum, Bilder, CSS usw.) für die Seite zu verwenden, aber den (dynamisch generierten) HTML -Inhalt selbst nicht tatsächlich zu zwischenspeichern.

Gibt es eine Möglichkeit, dies mit HTML5 -Offline -Appcache zu tun? Ich habe den Eindruck, dass die Antwort "Nein" ist, weil:

  • Jede Seite, die das Manifest enthält, wird zwischengespeichert, sodass ich die zwischengespeicherten Ressourcen auf der Seite selbst nicht angeben kann.
  • Es gibt keine Möglichkeit, eine vorherige Seite "Offline -Assets für diese andere Seite zu verwenden, aber die HTML auf dieser Seite nicht zwischenspeichert". Sie müssen die Seite selbst angeben, was bedeutet, dass die HTML zwischengespeichert wird.

Stellen Sie das falsch darüber? Es scheint, als ob es wahrscheinlich einige knifflige (oder nicht so trickige) Weg gibt. Jetzt, wo ich es ausgegeben habe, frage ich mich, ob die Seite explizit in die NETWORK Der Abschnitt des Appcache -Manifests erledigt den Trick.

War es hilfreich?

Lösung

Meine Antwort lautet "Ja".

Ich habe an einer Web-App gearbeitet, in der ich alle notwendigen Ressourcen im Manifest aufgelistet habe, und das festgelegt habe NETWORK Abschnitt zu *.

Das Manifest wird dann nur auf der Haupt -Landingpage enthalten. So werden alle Ressourcen zwischengespeichert, wenn Sie die Website zum ersten Mal besuchen, und es arbeitet eine Belohnung.

Zusamenfassend,

  • Eine Ihrer Seiten muss das Manifest enthalten und wird daher zwischengespeichert.

    Vielleicht können Sie das Manifest in einem Iframe geladen lassen und nicht die ganze Seite zwischengespeichert, nur einen Gedanken.

  • Listen Sie alle Ihre Ressourcen auf, die in der zwischengespeichert werden sollen CACHE Sektion

  • Setzen Sie die NETWORK Abschnitt zu *

Andere Tipps

Ich bin mir ziemlich sicher, dass die Antwort darauf nein. Wenn Sie den Netzwerkabschnitt in Chrome verwenden, wird angezeigt, welche Ressourcen aus dem Cache geladen werden und welche vom Server geladen werden. Ich habe versucht, den oben beschriebenen AppCache festzustellen, und die Ressourcen werden immer vom Server geladen. Würde ich annehmen, dass wenn sich die aktuelle Seite nicht im AppCache befindet, sich nicht die Mühe machen wird, den AppCache nach einer der Ressourcen einzuchecken?

Was ich gefunden habe, ist, die Dateien aufzulisten, die Sie im Netzwerk nicht in AppCache zwischengespeichert werden möchten: Abschnitt des Manifest. Das bedeutete für mich, * .asp * in den Netzwerkabschnitt hinzuzufügen. Jetzt wird keine der klassischen ASP -Dateien oder ASPX -Dateien zwischengespeichert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top