2013-04-11 54 views
7

Mi sembra di avere il problema opposto dalla maggior parte degli utenti SO. Ho una pagina statica che cambia raramente, e voglio che il browser non ricarichi quella pagina quando l'utente vi si avvicina rapidamente. Non sono stato in grado di trovare una semplice lista di regole dettagliate quando un browser si ricarica sulla back-navigation e quando non lo fa.Impedire al browser di ricaricare la pagina quando un utente preme Indietro

Se fa la differenza, il mio URL ha una stringa di query e viene servito utilizzando il protocollo https://.

+0

Perché solo nella navigazione posteriore? Cosa succede se l'utente carica questa pagina dalla cronologia e non viene aggiornata? Non dovrebbe essere ricaricato anche. Il codice di stato HTTP 304 non modificato è quello che ti serve: http://www.w3.org/Protocols/HTTP/HTRESP.html – user4035

+0

Questo è solo qualcosa di cui mi preoccupo meno. Sto solo risolvendo il caso di back-navigation, perché molti utenti fanno clic su un link, quindi tornano velocemente se non trovano ciò di cui hanno bisogno. Avere un carico extra del server a quel punto è il problema che voglio affrontare. – levik

+0

Stai usando uno script php e vuoi inviare HTTP 304 non modificato? – user4035

risposta

10

Non è necessario sapere se è stato utilizzato il pulsante Indietro. Basta dire al browser di memorizzare nella cache la tua pagina usando le intestazioni di controllo della cache. Vedrete un sacco di esempi da Google - http cache control headers

In particolare, guarda questi meta tag:

<meta http-equiv="CACHE-CONTROL" content="..." /> 
<meta http-equiv="EXPIRES" content="..." /> 

Edit:

Ecco un link ad uno dei risultati da quella di ricerca di Google . Penso che dia una spiegazione abbastanza buona di come funzionano queste intestazioni. Increasing Application Performance with HTTP Cache Headers

Con queste intestazioni è possibile specificare per quanto tempo memorizzare le pagine nella cache; 10 minuti, 30 minuti, ore, giorni, ecc.

+0

Immagino che quello che sto cercando sia una risorsa che elencherà per come i diversi browser onorano queste intestazioni in circostanze diverse. Ad esempio, ricordo URL con una stringa di query gestita in modo diverso da quelli senza alcuni browser in passato. – levik

+0

Ecco perché ho incluso questo link Google per te. C'è una quantità enorme di informazioni sul web su questo. Ho aggiunto una delle risorse da quella ricerca alla mia risposta per te. Lo spiega abbastanza bene e fornisce esempi. –

0

Hai provato onpageshow evento del tag del corpo?

<script type="text/javascript"> 
    function caller() 
    { 
     return false; 
    } 
</script> 
</head> 

<body onpageshow="caller();"> 
</body> 

Funziona nella maggior parte dei casi.

Problemi correlati