2009-08-13 12 views
8

Esiste un modo per creare un collegamento a un URL che impone al browser di ignorare qualsiasi cache che potrebbe avere per quell'URL?Link HTML che forza l'aggiornamento?

Abbiamo alcuni siti Web che sono stati recentemente modificati dopo letteralmente anni di contenuto statico. Gli utenti fanno clic su scorciatoie, preferiti o digita gli URL su questi siti e ottengono contenuti vecchi e memorizzati nella cache. Mi piacerebbe avere una pagina con un link che va allo stesso URL ma costringe il browser a ottenere il nuovo contenuto.

è possibile? Cross-browser?

risposta

10
  1. Cambiare tutti i link alla pagina con un parametro di query senza senso:? Prodotti.html felici = giorni
  2. Modificare tutte le risorse sulla pagina per utilizzare un'altra domanda senza senso parametri:? Style.css l'= Fonz

È possibile farlo in modo sistematico utilizzando date, marche temporali o numeri di versione, oppure a casaccio con sitcom, muppets, catene montuose e piccoli mammiferi.

+0

Sei a conoscenza di un modo per formare un URL che costringe le scorciatoie per essere aggiornati? Ad esempio, vedo come www.abc.com/?happy=days potrebbe essere un nuovo contenuto, ma se avessi una scorciatoia per www.abc.com, sarebbe stata aggiornata? – n8wrl

+0

Tom, stai dicendo che uno avrebbe bisogno di fare entrambe queste cose o solo una di queste? –

+2

Mi rendo conto che questo è vecchio, ma +1 per i suggerimenti dei parametri. –

4

aggiungere un parametro URL alla fine del href con un valore unico, dire new Date() getTime():.

...somePage.html?time=123456789 
0

Molte persone utilizzano un parametro di stringa di query di versione.

Verificare la fonte SO

<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=4143"></script> 

In particolare notare i master.js? V = 4143

Personalmente, ho impostato questo nel mio file di configurazione, che è larga di applicazione, ma ti credo può farlo nel controllo del codice sorgente se è necessario un controllo delle versioni automatico più granulare.

2

Quando ho bisogno di avere un aggiornamento completo della pagina, aggiungo semplicemente ?v= seguito da una stringa casuale di caratteri. Quando un browser rileva una stringa di query dopo una pagina, ignora automaticamente la cache (se la stessa stringa di query non è presente nella versione cache), poiché il contenuto della pagina potrebbe cambiare in base al valore della stringa di query.

Poiché una pagina web può essere ricaricata più di una volta per secondo, che usa la corrente timestamp UNIX seguito da una lettera e un numero casuale tra 1 e 1000.

Le possibilità che due pagine ottengono esattamente la stessa query la stringa è vicina a null.

0

link HTML che le forze rinfrescano con javascript:

Problemi correlati