2010-11-10 14 views
38

Devo forzare il browser a ricaricare la pagina precedente dal server quando l'utente preme il pulsante Indietro.Come arrestare il chrome dalla cache

ho aggiunto la seguente ai miei intestazioni di risposta:

Cache-Control: no-cache, must-revalidate 
Expires: -1 

Questo sembra funzionare per la maggior parte dei browser, ma non per Google Chrome che insiste sulla restituzione dei risultati memorizzati nella cache.

Quindi qualcuno sa come forzare il browser a ottenere la pagina dal server quando l'utente preme il pulsante Indietro?

Grazie.

+1

Se si desidera interrompere la memorizzazione nella cache dei contenuti del campo piuttosto che dare un'occhiata a [questo] (http://stackoverflow.com/a/2699400/669677)! –

+3

9000 visualizzazioni e le mod chiamano questa "una situazione straordinariamente stretta". – AaronLS

risposta

34

come da this bug report in repository cromo, gli utenti scoprono che l'utilizzo di no-store anziché no-cache lo risolverà in chrome.

+4

bug o funzionalità? –

+3

lol, chiamiamolo un 'problema di notazione' =] – superfro

+0

Ma per quanto riguarda gli altri browser. Aggiungendo questo interromperà altri browser? –

0

Questo non è corretto, ma forse è possibile utilizzare l'oggetto della cronologia Javascript per determinare se la pagina corrente è l'ultima pagina dell'elenco? In caso contrario, è stato premuto il pulsante Indietro.

Vedi questo riferimento: http://www.exforsys.com/tutorials/javascript/javascript-history-object-properties-and-methods.html

La vera soluzione, naturalmente, è quello di strutturare l'applicazione in modo tale che l'utilizzo di schiena/pulsanti avanti realtà il lavoro il modo in cui si suppone.

+4

Non sarei troppo felice di implementarlo a meno che non ci sia altra scelta, è un po 'hacky per i miei gusti. Il problema è che la pagina che si ricarica quando l'utente preme è il modo in cui il pulsante Indietro dovrebbe funzionare. Ad esempio, se fossi in banca online e mi sono disconnesso, non voglio che la gente torni indietro e veda i dettagli del mio account. Vorrei ricaricare la pagina. Abbiamo una situazione simile con la nostra applicazione, le informazioni potrebbero essere cambiate quindi è necessario ricaricare dinamicamente. –

+0

Sì, è un hacker, e io non lo consiglio, a meno che non sia la tua unica opzione. È solo una cosa a cui ho pensato. Tuttavia, dovresti ricordare a cosa servono i pulsanti avanti e indietro. I siti web erano originariamente pensati per documenti/pagine, non per applicazioni. Aggiungendo "no-store" come suggerito da superfro è una buona idea, dovresti anche raccomandare ai tuoi utenti di chiudere il browser dopo essersi disconnessi, come fa qualsiasi altra banca o sito sicuro. – Brad

+0

Scusa per il suono brusco. Apprezzo il consiglio, lo userò se non trovo una soluzione migliore –