Un ripristino IIS imporrà il rinvio degli elementi memorizzati nella cache?


10

Sto cercando di sviluppare una strategia per gestire i file javascript, css, immagini, ecc. Memorizzati nella cache quando rilasciamo un aggiornamento al nostro sito. Prima di iniziare l'implementazione dei numeri di versione sui file javascript mi ​​chiedevo se un ripristino IIS dopo ogni versione avrebbe effettivamente risentito dei file memorizzati nella cache.

Risposte:


8

Quando si esegue un ripristino IIS, la cache IIS verrà cancellata e quindi inizierà a essere ricostruita dopo il riavvio quando arrivano le richieste del client. Se si aggiorna un file, il file memorizzato nella cache precedente diventerà obsoleto e IIS servirà il file aggiornato e aggiorna la cache con il nuovo file.

IISReset (anche se rigido) cancellerà la cache IIS ma non farà nulla con le cache locali in proxy o client. Forse hai appena confuso un po 'la terminologia, ma non c'è alcun concetto di "risentimento" quando si tratta di memorizzazione nella cache. È tutto basato su richiesta. Se un client richiede qualcosa e viene trovato in una cache, verrà servito dalla cache. Dovrai forzare la scadenza del contenuto sui tuoi file se manterrai gli stessi nomi di file.


Grazie per l'aiuto. Per favore, perdona la mia ignoranza in quest'area ... Mi sto confondendo tra il client e la cache IIS. Il termine "reinviato" si riferiva al server che inviava il contenuto anziché essere estratto dalla cache del client.
DaveK,

@Dave nessuna preoccupazione, felice che abbia aiutato! Un ulteriore bit, se un file si trova in una cache client o in una cache proxy upstream, il server non riceverà nemmeno la richiesta a meno che l'elemento memorizzato nella cache non sia aggiornato e non sia disponibile una versione più recente dal server.
squillman

3

No, la memorizzazione nella cache del client si basa sul tempo di scadenza del contenuto.


3

Quando modifichi un file javascript, hai bisogno di TUTTI i client su cui è in esecuzione l'applicazione web per ottenere il nuovo file, mi risulta chiaro il "recente".

Per ogni client per ottenere dal server il nuovo file, è necessario includere solo nell'includere / script del proprio javascript nella pagina web il "?version=1".

È necessario solo un parametro potrebbe essere ?blue=helloo ?v=1234155è come vuoi tu. L'importanza è utilizzare un valore diverso ogni volta che si modifica javascript. "?version=1"per la prima modifica, "?version=2"per la seconda modifica, è pratico e unico conoscere il valore successivo. Puoi anche usare un GUID se vuoi: "?version=4747b320-62ce-11cf-a5d6-28db04c10777"oppure puoi usare la data e l'ora "?version=20130220175025"per il 20/02/2013 alle 17:50:25.

Esempio 1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

Esempio n. 2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.