2013-04-05 9 views
5

Esiste un metatag o qualcosa che posso usare per dire al browser di non usare una cache prima di una certa data.Indica ai browser di aggiornare la cache se la data della cache è superiore a una certa data

ad es.

<meta "only use cache if cache is AFTER 4/4/2013">

Se la cache è vecchia ha bisogno di scaricare tutti i nuovi Javascript, CSS, immagini, ecc ..

faccio un sacco di aggiornamenti al sito e poi si avvita in su chiunque ha ancora una cache (e non puoi aspettarti che sappiano premere ctrl + f5 o ctrl + r).

+0

non è possibile forzare i browser per il riutilizzo della cache. puoi essere creativo e avere scadenze scadute nel passato o qualcosa del genere, ma questo è tutto. – PlantTheIdea

+0

sulle reti aziendali sono sicuro che è possibile farlo tramite gli oggetti Criteri di gruppo. – RandomUs1r

+0

puoi provare a disattivare completamente la cache http://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off-caching-in-all-browsers – btevfik

risposta

2

Io di solito basta aggiungere un parametro get alla fine con la versione della sceneggiatura che sto presentando loro

quindi se avete il vostro javascript in

www.example.com/script.js 

utilizzare l'URL

www.example.com/script.js?foo=1 

quando incremento il valore di foo ogni volta, questo costringe il browser a recuperare lo script.

+0

Questa è la migliore risposta ai poster domanda. Ti permette di invalidare efficacemente la cache quando lo vuoi, indipendentemente dalle intestazioni precedentemente impostate. L'unico svantaggio è che la tua pagina non è testabile dal filesystem ma solo da un server web, dal momento che il filesystem riconosce? Param = bla come parte del nome del file. Puoi risolvere questo problema incorporando un numero di versione nel nome del file, ma questo ha altri svantaggi: probabilmente significa che devi modificare i tag css in molte delle tue pagine html, o devi usare un sistema di inclusione lato server per risolvere quello, che richiederà anche un server. –

0

Questa è configurato dal file .htaccess con ExpiryDates

(Esempio di mine sotto mio ospite gestisce un PHP/Apache Server -. 000webhost.com)

<IfModule mod_expires.c> 

# Enable expirations 
ExpiresActive On 

# My favicon 
ExpiresByType image/x-icon "access plus 1 year" 

# Images 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType text/css "access plus 1 week" 

# Javascript 
ExpiresByType application/javascript "access plus 1 year" 

</IfModule> 
+0

In che modo questo metodo gestisce una data di scadenza specifica, come richiesto dall'OP? – showdev

1

Non c'è un meta tag per l'impostazione della cache solo dopo una certa data, ma se si utilizza qualsiasi linguaggio server (PHP, .NET, ruby, phyton) è possibile impostare il controllo della cache su no-cache e quindi impostare dinamicamente le intestazioni per avviare la memorizzazione nella cache dopo una certa data.

Ad esempio, utilizzando PHP:

<?php 
$cdate = date('Ymd'); 
if ($date > '20130404') { 
    header('Cache-Control: max-age=28800'); //cache lifetime to 8 hours 
} else { 
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
} 
?> 
Problemi correlati