2012-06-08 16 views
7

Qualcuno può spiegarmi come impostare una cache per la mia pagina che se l'utente preme il pulsante Indietro e non è in linea o qualcosa, vedrà comunque la pagina precedente come su SO e la maggior parte siti.Come cache solo per il pulsante Indietro

Ma come posso forzarlo quando viene inviata una nuova richiesta HTTP, verrà recuperata una nuova poiché il contenuto cambia di minuto in minuto (cioè un forum)?

Grazie

+0

Non è possibile controllare se il client invia una nuova richiesta o meno (anche per il pulsante Indietro). – Repox

+0

Se si utilizzano le intestazioni di memorizzazione nella cache, la pagina verrà memorizzata nella cache fino a quando non si fa clic sul pulsante Aggiorna per forzare un aggiornamento con nuove intestazioni. –

+0

@LawrenceCherone se colpisci una nuova pagina di Stackoverflow non ottieni la versione più recente (o almeno non più tardi di 30 secondi). Quindi, come fanno a creare una cache che dura quando non è nemmeno connessa a Internet? – yehuda

risposta

0

Ho finalmente scoperto che per qualche motivo, inserendo una cache in tutte le mie pagine, lasceremo loro un pulsante indietro per sempre, tuttavia quando la pagina viene aggiornata, ne recupererà ancora una nuova dal server.

Perbacco, ma funziona!

0

L'unico modo per farlo davvero è quello di informare il browser client che può memorizzare nella cache della pagina web, che (a volte) impedire che il browser di inviare un'altra richiesta HTTP se il tempo di cache non è scaduto (vedere qui per ulteriori informazioni: http://en.wikipedia.org/wiki/Web_cache#Cache_control).

Tuttavia, se il contenuto della pagina è dinamico e continuamente aggiornato (come sembra implicare se si tratta di un forum). Quindi probabilmente non vuoi permettere al browser di memorizzare nella cache.

+0

allora come si può premere il pulsante Indietro quando online su Stackoverflow? – yehuda

Problemi correlati