Informationen zum löschen von Anwendungs-cache (HTML5-Funktion) mit JavaScript?
Unserer Web-Anwendung verwendet den Anwendungs-cache (cache-manifest) wiederherstellen HTML-Seite und Ressourcen in der off-line-Modus. HTML-Seiten haben-Kennungen, die als Parameter den URI. Also, nach jedem logout und login-Aktion neue HTML-Seiten gespeichert werden, um Anwendungs-cache, weil die sessionId geändert wurde in URI. Nach einigen Wochen Arbeit mit der Anwendung einige Browser mit der Arbeit beginnen langsamer. Und die Größe der Anwendungs-cache (getestet auf FF 3.6+) ist über 200Mb! Nach jedem logout wir klar LocalStorage des Browsers,aber gewusst wie: löschen Sie die Ressourcen aus der Anwendung Lagerung?
Sie sagen, 'neue HTML-Seiten gespeichert werden, um Anwendungs-cache' - das scheint nicht richtig zu? Ein browser verarbeitet die Anwendung den cache als ganzes, es gibt keine Möglichkeit, atomar Seiten hinzufügen, die Anwendung cache. Können Sie bitte klären?
Ich benutze Fallback-Abschnitt des cache-manifest in der Art und Weise:
Zeug in den Anwendungs-cache sollte sich nicht ändern, jede Sitzung, was ist der Punkt, es zu speichern für die offline-Nutzung, wenn es sich ändern? Legen Sie statische Inhalte in der Anwendungs-cache, den lokalen Speicher verwenden und AJAX zum laden der session-spezifische Daten, so dass Sie haben die Kontrolle über das JavaScript.
Ich verstehen Sie Punkt der Ansicht, aber ich verwende dynamische cache-manifest-Datei und ich füge eine sessionId an die URL der manifest-Datei in <html manifest='?action=getmanifest&sessionId=1234567'> Ohne sessionId gibt es keine Möglichkeit, Ressourcen zu erhalten und das richtige Ergebnis vom server. So, wie ich verstanden habe nach jedem generieren neue session Größe des cache wird immer größer, weil der sessionId in dynamische manifest-Datei-URI.
Ahh, da ist dein problem... du bist was dem Benutzer verschiedene web-app jedes mal.
Ich benutze Fallback-Abschnitt des cache-manifest in der Art und Weise:
mysite.com/?SID=123456&a=1 mysite.com/?SID=123456
, Also statische Seiten werden heruntergeladen und gespeichert, im cache. Jede Anmeldung/Abmeldung generieren neue sessionId führt, dass für die Speicherung neuer statischen Seiten.Zeug in den Anwendungs-cache sollte sich nicht ändern, jede Sitzung, was ist der Punkt, es zu speichern für die offline-Nutzung, wenn es sich ändern? Legen Sie statische Inhalte in der Anwendungs-cache, den lokalen Speicher verwenden und AJAX zum laden der session-spezifische Daten, so dass Sie haben die Kontrolle über das JavaScript.
Ich verstehen Sie Punkt der Ansicht, aber ich verwende dynamische cache-manifest-Datei und ich füge eine sessionId an die URL der manifest-Datei in <html manifest='?action=getmanifest&sessionId=1234567'> Ohne sessionId gibt es keine Möglichkeit, Ressourcen zu erhalten und das richtige Ergebnis vom server. So, wie ich verstanden habe nach jedem generieren neue session Größe des cache wird immer größer, weil der sessionId in dynamische manifest-Datei-URI.
Ahh, da ist dein problem... du bist was dem Benutzer verschiedene web-app jedes mal.
InformationsquelleAutor SAHbKA | 2011-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem mit dem Anwendungs-cache, die Aufnahme so viel Platz ist, geben Sie den user-agent einen anderen offline-web-Anwendung jeder Zeit. Eine offline-web-Anwendung ist identifiziert den user-agent von der URI der cache-manifest-Datei, inklusive query-string - nicht die URI des master-Datei, wie Sie vielleicht denken.
So, indem Sie die session-ID in der cache-manifest-URI, sagen Sie dem browser, dass jede Sitzung bekommt eine eigene Marke neue Anwendung ohne die Verwendung eines der zuvor heruntergeladenen (und so, dass Sie nie in der Lage, um Sie zu deaktivieren). Wenn Sie die Installation einer anderen web-Anwendung jeder Zeit.
Überdenken, wie Sie die Architektur Ihrer Anwendung, wie Sie derzeit mit HTML5 offline-cache-manifest liefert keine Wert - nur übermäßige herunterladen. Die Architektur, die web-Anwendungen fördern, ist das alle HTML-statisch und abrufen von Daten, die benötigt Sitzungen über AJAX. Web-Anwendungen funktionieren nicht, wenn gebaut, in der klassischen "generieren dynamisch eine HTML-Seite mit Daten auf dem server" - Paradigma.
t include sessionID-as a result the only one ApplicationCache object in browser with static name(without sessionId). @Stoive- sorry, can
t add Ruf bkz ich bin ein neuer user hier:)Toll zu hören das es funktioniert 🙂
InformationsquelleAutor Stoive
Ich bin mir nicht sicher, Sie haben die Kontrolle über Anwendungs-cache von JavaScript. Dies ist etwas, das behandelt werden soll, indem Sie die browser und die user, wenn Sie den cache leeren.
Vielleicht ist die folgende Erweiterung könnte helfen ? sites.google.com/site/keigoattic/home/...
Sie können manuell ein update auslösen per JavaScript, aber das ist es: whatwg.org/specs/web-apps/current-work/multipage/...
InformationsquelleAutor jonjbar