Ich spiele mit einem Anwendungscache und habe Probleme mit der swapCache-Funktion.
Ich habe die weltweit einfachste Cache-Manifest-Datei erstellt:
%Vor%Das Ausführen der Anwendung zum ersten Mal gibt mir dies in der Konsole:
%Vor%Alles gut so weit. Dann tausche ich das Bild aus und ändere den Zeitstempel in der Manifest-Datei und erhalte Folgendes:
%Vor%An diesem Punkt wird die Funktion applicationCache.swapCache () aufgerufen, die mir einen DOM exception 11 Fehler gibt.
MIME-Typen sind alle korrekt auf dem Webserver konfiguriert.
Hat jemand irgendwelche Ideen / kann mich in die richtige Richtung weisen? (Ich habe online alle Appcache-Sachen gelesen und kann nicht sehen, was ich falsch mache)
Danke!
BEARBEITEN:
Wie ich bereits in den Kommentaren erwähnt habe, scheint es zu funktionieren, die expires-Kopfzeilen auf meinem Webserver so einzustellen, dass * .appcache-Dateien sofort ablaufen, obwohl ich immer noch den DOM-Ausnahmefehler (!?) erhalte. Ich habe den folgenden Blogeintrag gefunden, der helfen kann: Mögliche Fehlerbehebung für Offline-App-Cache INVALIDSTATEERR
... aber ich habe keine Ahnung, wie ich die MIME-Typen Client-Seite einstellen soll. Meine Google-Fu-Fähigkeiten haben mich verlassen. Jeder?
Ich hatte das gleiche Problem. Für eine Weile habe ich den Cache nur deaktiviert, wenn der Browser nicht chrome war, aber dann habe ich mich entschieden, es erneut zu versuchen, indem ich den Mime-Typ wie vorgeschlagen einstelle. Firefox gibt keine Ausnahme mehr aus, wenn ich swapCache()
aufruft, und der gesamte Aktualisierungsprozess funktioniert nun wie erwartet. Der MIME-Typ muss serverseitig eingestellt werden, da die Anfrage nicht von Ihrer Webseite, sondern vom Browser aus initiiert wird. Sie haben also keine Kontrolle darüber, wie sie die Antwort liest. Sie haben hier ein paar Optionen. Wenn Sie Apache oder IIS verwenden, können Sie tun, wie Koko vorgeschlagen. Wenn Sie ein Framework verwenden, das das Routing für Sie übernimmt und Sie die Zuordnung von URLs zu Antworten konfigurieren, z. B. zu Rails oder einem Python-WSGI-Server, können Sie den Inhaltstyp normalerweise manuell festlegen. Hier ist mein Auszug aus dem, was ich in meiner Python-App mit Bottle.py (WSGI-basiert) verwende:
Bottle kommt mit einer Dienstprogrammfunktion, die statische statische Dateien, die ich verwende, verarbeitet. Es hat einen optionalen Parameter, um den Mime-Typ einzustellen.
tl; dr Wenn Sie den MIME-Typ nicht zu Ihrer Serverkonfiguration hinzufügen können, können Sie ihn fast immer in Ihrem Server-Side-Code (wenn Sie haben) setzen egal).
Ich würde vorschlagen, die Catchall-NETZWERK-Whitelist zu kommentieren.
%Vor%Der * scheint nach
Netzwerkzugriff für alle Dateien zu erfordernIch habe jetzt alle NETWORK-Einträge für eine einfache Web-Anwendung von mir auskommentiert und es funktioniert gut.
Tags und Links javascript html5 browser-cache