Ich versuche, einen HTML5-Anwendungscache für eine sehr große (ca. 2 Gigabyte) Webanwendung zu erstellen, die intern auf einem Windows 8 Professional-Tablet und IE10 verwendet wird. Etwas verursacht den Caching-Prozess fehlgeschlagen, aber die einzige Debug-Informationen, die ich finden kann, ist die F12-Konsole, die einfach "AppCache Fatal Error" angibt.
Ich habe einen Fehlerhandler gemacht und versucht zu debuggen:
%Vor% e
enthält jedoch keine nützlichen Informationen, wenn Sie mit dem Debugger angezeigt werden.
Laut den Webserverprotokollen ist die letzte Datei, die vor dem Fehler angefordert wurde, eine JPEG-Datei, genau wie viele andere. Wo soll ich nach Hinweisen suchen, was den Fehler verursacht? Die Seite wird in Firefox gut gespeichert.
Ich habe meinen Kopf für eine Weile gegen dasselbe Thema gerichtet. Ich habe mein Manifest gehackt, bis ich herausgefunden habe, welche Zeile den Fehler verursacht hat: Es war die 1000. Zeile von CACHE-Einträgen (nicht nur die 1000ste Zeile des Manifests).
Es scheint so, als ob die Anzahl der Objekte in einem Cache in IE10 stark begrenzt ist. Ich habe das nach ein paar Minuten Suche nirgends dokumentiert gefunden, aber ich wage zu behaupten, dass jemand, der es länger aushalten könnte, es durchforsten würde.
Ich habe nachgeprüft, dass es egal ist, was der Inhalt des 1000. CACHE-Artikels ist; IE verhindert nur, dass Sie den Cache-Download sofort starten. Dies kann aus Sicherheitsgründen eine Einschränkung darstellen, indem verhindert wird, dass jemand den Cache überflutet oder wenn eine Manifestation mit Tausenden von Einträgen in eine Seite eingefügt wird.
Versuchen Sie vielleicht, Ihre App in Chunks (über Subdomains?) mit verschiedenen Caches aufzuteilen. Könnte für eine bessere Benutzererfahrung sorgen, wenn es in Blöcken heruntergeladen wird, können Sie die "Installation" immer automatisieren, indem Sie zwischen einer Reihe kleinerer Caches umleiten.
Falls es jemandem hilft, habe ich einen anderen Weg gefunden, diesen Fehler zu beheben.
Wenn Sie den Anwendungscache verwenden und den Cache-Control-Header für die HTML-Datei mit dem Eintrag cache.manifest auf "Cache-Control: no-cache, no-store" setzen, erhalten Sie diesen Fehler. Durch das Entfernen des No-Store-Flags für den Cache-Control-Header wird das Problem in dieser Instanz behoben. Ich habe versucht, den Application Cache nur für Ressourcen und nicht für die HTML-Seite selbst zu verwenden, aber leider ist das nicht das, wofür er entworfen wurde.
Beachten Sie auch, dass alle anderen Browser einfach das No-Store-Flag für Dateien in der cache.manifest ignorieren, während IE technisch das Richtige tut, indem er etwas pedantischer ist.
Die Internet Explorer-Gruppenrichtlinie legt die Beschränkung der Cache-Ressourcenlistengröße auf 1000 Elemente fest. Dies kann durch Ändern dieser Richtlinie erweitert werden. Weitere Informationen finden Sie hier , Teil "Festlegen der maximalen Listengröße für die Größe des Anwendungscaches".
> Mein Problem war, dass IIS das .manifest
-Extension verwendet und das Content-Type
auf x-ms-manifest
gesetzt hat. Also habe ich folgendes in die web.config hinzugefügt - das löste die fatal error
(IE 11) und der Appcache funktioniert nun mit HTTPS (SSL) was vorher nicht funktioniert hat (funktioniert nur mit HTTP) :
Tags und Links internet-explorer-10 debugging html5-appcache