2011-01-07 18 views
6

Ich experimentiere mit der HTML5-Funktion appCache, da unsere Webanwendung viele Bildressourcen verwendet. Die meisten Seiten sind keine statischen, sondern dynamische Seiten, die auf Django basieren.HTML5 appCache mit dynamischer Django-Seite verwenden

Das Problem ist, dass, wenn AppCache für eine Seite (mehr wie eine RESTFUL-URL) verwendet wird, automatisch diese Seite herunterladen, aber es scheint, gibt es keine Möglichkeit, diese Seite ungültig zu erzwingen, wenn Content-Updates auf dieser Seite sind ohne die Manifestdatei auf der Serverseite zu ändern.

Meine Frage ist, bedeutet das, dass ich appcache nicht auf dynamischen Seiten verwenden kann? wenn nicht, wie mache ich das?

Antwort

1

Manifestdateien in HTML5 sind nicht für dynamisch veränderliche Ressourcen gedacht. Sein Zweck ist die gemeinsame Verwendung von konstanten Assets, die anwendungsweit verwendet werden: Dinge wie CSS, JavaScript und Oberflächenelemente (Symbole, Schaltflächen, Logos, Hintergründe usw.), die das Erscheinungsbild der Anwendung ausmachen (auch wenn sie nicht aktuell verwendet werden) Aussicht). Auf diese Weise können die gemeinsamen Assets vorab abgerufen und zwischengespeichert werden, so dass jede Ansicht nur ihren individualisierten Inhalt laden muss.

1

Ich denke, wir haben ein ähnliches Problem:

My HTML5 Application Cache Manifest is caching everything

ich nicht die endgültige Antwort gefunden haben, aber von dem, was ich gelernt habe, scheint es, dass das Manifest nicht auf jeder Seite gesetzt werden soll . Wieder bin ich mir nicht sicher, aber das ist ein Hack, dem ich begegnet bin. Ich habe eine Seite wie manifest.html, die die

<html manifest="manifest.appcache"> 

habe ich gelernt, dass Seiten, die dies nicht haben, werden nicht jedoch in den Cache hinzugefügt werden sie immer noch, wenn auf der gleichen Domäne mit dem Anwendungscache fortzusetzen. Therfore wenn Sie manifest.html eine einfache HTML-Seite enthalten, die diese in einem iframe auf every hat, wird es nicht die Seite wie Chrom-Cache wird nicht mehr ausgegeben:

Adding master entry to Application Cache with manifest 

aber wenn Sie mit der Tabulatortaste zum Netz gehen sehen Sie, dass es wird mit dem Cache

also im Grunde statt manifestieren Attribute auf hTML-Tag diese am Anfang des Körpers setzen: <iframe id='manifest_iframe_hack' style='display: none;' src='temporary_manifest_hack.html'>

Inhalt temporary_manifest_hack.html:

<!DOCTYPE HTML> 
<html lang="en" id="sexxymofo" class="no-js" manifest="manifest.appcache"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Hack 4 Manifest</title> 
    </head> 
    <body></body> 
</html> 

jetzt, da Sie nicht Ihr Problem angab speziell Ich bin besorgt, vielleicht mit einem gültigen Manifest ein Problem haben, denken Sie daran, es im Manifest keine Platzhalter ist, verwenden Sie diese URL zu validieren: http://manifest-validator.com/validate

die einfachste Fehler wird das Manifest verursachen ungültig zu sein und kein AppCache verwendet wird, verwenden Sie Chrom für das Debuggen als Konsole jeden Schritt des Prozesses wird sich einzuloggen, auch diese uRL in Chrom: chrome://appcache-internals/

wieder einen Blick auf meine Frage in der Antwort oben, um mehr zu erfahren