2013-04-05 4 views
5

Gibt es ein Meta-Tag oder etwas, das ich verwenden kann, der den Browser anweist, vor einem bestimmten Datum keinen Cache zu verwenden.Bitten Sie Browser, den Cache zu aktualisieren, wenn das Cache-Datum über einem bestimmten Datum liegt.

z.B.

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

Wenn der Cache ist alt es die neue Javascript, CSS, Bilder, etc ..

Ich mache auf der Website eine Menge Updates herunterladen muss und dann verzieht jeder, hat immer noch einen Cache (und Sie können nicht erwarten, dass sie ctrl + f5 oder ctrl + r drücken).

+0

Sie können nicht Browser erzwingen Cache wieder zu verwenden. Sie können kreativ werden und haben Cache-Ablaufdaten in der Vergangenheit oder etwas, aber das ist es. – PlantTheIdea

+0

in Business-Netzwerken bin ich sicher, dass Sie dies über die GPOs erreichen können. – RandomUs1r

+0

können Sie versuchen, die Zwischenspeicherung vollständig zu deaktivieren http://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off-caching-in-all-browsers – btevfik

Antwort

2

ich mit der Version des Skripts in der Regel nur ein Get-Parameter am Ende hinzufügen ich sie

so an, wenn Sie Ihr Javascript vorstelle, haben

www.example.com/script.js 

www.example.com/script.js?foo=1 
die URL verwenden

Wenn ich den Wert von foo jedes Mal inkrementiere, zwingt dies den Browser, das Skript erneut abzurufen.

+0

Dies ist die beste Antwort auf die Plakate Frage. Es ermöglicht Ihnen, den Cache effektiv zu deaktivieren, wenn Sie ihn wollen, unabhängig von zuvor gesetzten Headern. Einziger Nachteil ist, dass Ihre Seite nicht vom Dateisystem aus testbar ist, sondern nur von einem Webserver, da das Dateisystem "param = bla" als Teil des Dateinamens erkennt. Sie können dies beheben, indem Sie eine Versionsnummer in den Dateinamen einfügen, aber das hat andere Nachteile: Es bedeutet wahrscheinlich, dass Sie die css-Tags in vielen Ihrer HTML-Seiten ändern müssen, oder Sie müssen ein serverseitiges Include-System verwenden das, was auch einen Server benötigt. –

0

Dies wird aus der .htaccess-Datei mit ExpiryDates konfiguriert

(Beispiel von mir finden Sie unten Mein Host läuft ein 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

Wie behandelt diese Methode ein bestimmtes Ablaufdatum, wie vom OP angefordert? – showdev

1

Es gibt keine Meta-Tag Um den Cache nur nach einem bestimmten Datum zu setzen, aber wenn Sie eine Serversprache (PHP, .NET, Ruby, Phyton) verwenden, können Sie die Cache-Steuerung auf No-Cache setzen und die Header nach einem bestimmten Datum dynamisch zwischenspeichern.

Zum Beispiel mit 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 
} 
?> 
Verwandte Themen