Ho notato che alcuni browser (in particolare Firefox e Opera) sono molto zelanti nell'uso di copie cache dei file .css e .js , anche tra le sessioni del browser. Ciò comporta un problema quando si aggiorna uno di questi file ma il browser dell'utente continua a utilizzare la copia memorizzata nella cache.
La domanda è: qual è il modo più elegante di forzare il browser dell'utente a ricaricare il file quando è cambiato?
Idealmente, la soluzione non forzerebbe il browser a ricaricare il file ad ogni visita alla pagina. Pubblicherò la mia soluzione come risposta, ma sono curioso di sapere se qualcuno ha una soluzione migliore e lascerò decidere i vostri voti.
Aggiornare :
Dopo aver permesso la discussione qui per un po ', ho trovato utile il suggerimento di John Millikin e da5id . Si scopre che esiste un termine per questo: auto-versioning .
Di seguito ho pubblicato una nuova risposta che è una combinazione della mia soluzione originale e del suggerimento di John.
Un'altra idea suggerita da SCdF sarebbe quella di aggiungere una stringa di query fasulla al file. (Alcuni codici Python per utilizzare automaticamente il timestamp come stringa di query fasulla sono stati inviati da pi .). Tuttavia, si discute se il browser memorizzerebbe nella cache un file con una stringa di query. (Ricorda, vogliamo che il browser memorizzi nella cache il file e lo utilizzi nelle visite future. Vogliamo che recuperi nuovamente il file solo quando è cambiato.)
Dato che non è chiaro cosa accada con una stringa di query fasulla, non accetto questa risposta.
iframe.contentWindow.location.reload(true)
. Vedi il metodo (4) di stackoverflow.com/a/22429796/999120 - si tratta di immagini, ma lo stesso vale.
ExpiresActive On ExpiresDefault "modification"
.