2010-12-29 16 views
7

Ho un'app HTML5 che utilizza la cache offline con un file manifest. L'unico modo che attiva l'aggiornamento della cache è una modifica nel file manifest sul server. Sto cercando un modo programmatico di esaurire la cache e imporre l'aggiornamento.Scadenza programmatica cache offline HTML5

Ho esaminato la specifica, cercando un metodo su window.applicationCache per far scadere la cache. Ma non ha trovato nessuno. Esiste un metodo update(), ma verrà aggiornato solo se la cache è scaduta (cioè c'è un cambiamento nel file manifest). Quindi questo non aiuta.

Qualcuno conosce un modo programmatico per scadere la cache dell'applicazione e forzare il download?

+0

Il modo * * lato server * è quello di server '404' per il vecchio file manifest. Dovresti usare un nome file manifest che contiene una stringa di versione in modo da avere la possibilità di scadere nelle vecchie versioni del manifest. – meagar

risposta

2

AFAIK, lo manifest è l'unico mezzo per avviare un aggiornamento. Il sito Web HTML5 Rocks ha un articolo che parla dell'aggiornamento programmatico della cache (dopo un aggiornamento manifest) chiamando immediatamente applicationCache.swapCache() dopo aver ascoltato uno stato UPDATEREADY in appCache.status.

non sono sicuro se questo sarà sufficiente, ma la sua una buona lettura (scorrere fino a "Aggiornamento della Cache") - http://www.html5rocks.com/tutorials/appcache/beginner/

2

E 'vero che un aggiornamento viene attivata solo da un "aggiornato" manifesta file. Ma alcuni browser (FF, chrome) non controllano tutti i file a cui fa riferimento il file manifest. Ad esempio, jpg non testerà se il server ne ha uno nuovo. Sembra che la politica generale di memorizzazione nella cache del browser influenzi il processo di aggiornamento. Per forzare il browser a controllare tutti o alcuni dei file presenti nel manifest della cache, devi taggare questi file con "Cache-Control: no-cache" nell'intestazione HTTP.

È possibile controllare l'operazione di aggiornamento utilizzando i cookie. Se si dispone di uno script serveride che interpreta i comandi cookie, è possibile forzare il browser a contenuti cache obsoleti tramite javascript. Ad esempio, se il client esegue un cache.update() con un set di cookie "cache_clear", il server può rispondere con il codice di risposta 404 che causa il browser obsoleto del contenuto della cache dell'applicazione.

Problemi correlati