Sto sviluppando un'applicazione offline con un insieme di pagine .php. Attualmente ho messo quei file php in un file manifest .appcache e funziona perfettamente. Ma il problema è che, anche se sono online, quando provo ad accedere a una pagina php, carica la versione cache. Ciò che preferisco è una funzionalità come questa,Caching di pagine PHP in HTML5 appcache
- Se in linea: connettersi al server e caricare le informazioni aggiornate e sovrascrivere quello memorizzato nella cache con nuove informazioni.
- Se non in linea - mostra l'ultima pagina html statica aggiornata.
Ecco il mio .appcache contenuto del file manifest
CACHE MANIFEST
#2
taskmanager.php
public/css/bootstrap.css.map
public/css/bootstrap.min.css
public/css/bootstrap-theme.css.map
public/css/bootstrap-theme.min.css
public/css/main.css
public/css/task-manager.css
public/js/app.js
public/js/taskmanager.js
public/js/offlink.js
public/js/jquery-2.1.4.js
public/js/bootstrap.min.js
NETWORK:
*
http://*
Che taskmanager.php fare è leggere le attività da un database e vederlo. Quando lo metto in cache come sopra, mostrerà sempre l'elenco delle attività quando è stato caricato per la prima volta. Anche quando sono online, non chiama il database e ottiene le nuove voci. Invece è caricato dalla cache. Quindi, la mia soluzione era di metterlo nella sezione FALLBACK come menzionato dalla prima risposta. Anche se ho messo il file taskmanager.php nella sezione FALLBACK come qui di seguito,
FALLBACK
taskmanager.php static_taskmanager.php
Ora, se ho la connessione internet, taskmanager.php verrà eseguito e mi mostrerà gli ultimi compiti. Ma voglio rendere static_taskmanager in modo tale che sia sincronizzato con quelle ultime serie di attività. Il che significa che quando l'utente va offline, static_taskmanager.php mostrerà l'elenco più recente di compiti che è stato restituito da taskmanager.php quando l'utente era online). Ma al momento funziona come una pagina statica completa.
- È possibile farlo?
- Come posso risolvere questo problema?
EDIT
Come ho capito cerchiamo SO e Google, un modo per raggiungere questo è caricare il contenuto dinamico utilizzando AJAX. Ma mi chiedo che sia possibile farlo usando solo il file manifest stesso.
Grazie per la risposta. Sì, il fallback risolverà un'intera parte della mia soluzione. Vorrei anche fare lo static.php sincronizzato con main.php. Il che significa che ogni volta che cambia il contenuto di main.php, voglio che sovrascriva lo static.php nella cache (in tal modo, staticwind static mostrerà le ultime informazioni possibili). È possibile farlo dal lato del cliente? – arunatebel
Aggiornare il timestamp ogni volta che le modifiche di main.php dovrebbero indurre i browser a richiedere una nuova versione di manifest e static.php – user2182349
In realtà per "modifiche" intendiamo principalmente le modifiche al database. Per esempio, per esempio: main.php stampa i nomi di animali da un database. Quindi, quando viene caricato per la prima volta, leggerà i nomi degli animali e la pagina html verrà memorizzata nella cache in appcache. Successivamente, ogni volta che ricarico la pagina (anche quando sono online) mostrerà lo stesso insieme di nomi, ** anche se il database viene modificato **. Quello che voglio è tenere traccia di queste modifiche al database aggiornare la versione della cache sincronizzando comunque tali modifiche. Spero che tu capisca il punto? – arunatebel