2010-01-12 2 views
5

Ho un problema piuttosto problematico che non ho ancora trovato una buona soluzione.Impedire la memorizzazione nella cache del browser sugli aggiornamenti delle applicazioni Web

Consente il caching di tutti i file statici dell'applicazione (JS, CSS e immagini) dal browser per le prestazioni.

Problema, quando eseguo gli aggiornamenti, gli utenti utilizzano ancora la versione precedente dalla loro cache, che spesso interrompe l'applicazione e richiede di svuotare la cache ogni volta per risolvere il problema.

Esiste un buon approccio multi-browser che consente comunque di memorizzare i file nella cache, ma può obbligarli a ricaricarli quando necessario?

Grazie per qualsiasi informazione.

risposta

7

Aggiungere somethign all'URL come parametro, ad es. myresource.css?version=1. Il file verrà inserito correttamente, è un trucco per forzare il ricaricamento della cache. Hai solo bisogno di generare la pagina html in modo dinamico.

+0

+1. Questo è ciò che fa Net quando si utilizzano risorse Web incorporate. – David

+0

Questa domanda sembra coprire l'argomento in maggiori dettagli: http://stackoverflow.com/questions/118884/what-is-an-elegant-way-to-force-browsers-to-reload-cached-css-js- file – ewernli

+0

Ciao. Grazie per il collegamento, sembra dare una spiegazione molto dettagliata. Inoltre, solo per capire la tua spiegazione, è necessario che il parametro della versione sia conservato per sempre nel link e poi incrementato ogni volta che la versione viene aggiornata (come nel link che hai postato)? Grazie ancora. – SyBer

0

Ho sentito parlare di utilizzare i numeri di versione nei nomi dei file che si desidera memorizzare nella cache degli utenti, ma non riesco a parlare di "buono" rispetto alle altre opzioni.

0

Opzioni mi viene in mente:

  • Ridurre la cache TTL
  • Conservare la roba cacheable in un albero di versione, ad esempio:
    • /app/1.2/css/
    • /app/1.2/js/