Seiten neu laden, damit Änderungen sichtbar werden
Birke
- javascript
Hallo,
seit langen suche ich nach einem Weg, dass Seiten die vor mehr als 30 Minuten geladen wurden, nicht aus dem Cache des Browsers kommen, sondern neu geladen werden. Immer wieder kommt es dazu, dass Mitarbeiter und/oder Kunden veraltete abgespeicherte Seiten sehen oder noch schlimmer einen Mix aus alt und neu sehen, der auf dem Bildschirm chaotisch aussieht.
Ich habe die üblichen Hinweise diesbezüglich alle schon ausprobiert und nichts scheint zu helfen. Jetzt versuche ich es mit Javascript, aber ich bin mir noch nicht sicher, ob es in jedem Fall funktioniert. Hat jemand Lust meinen Code zu testen ?
<!--Neu Laden-->
<script type="text/javascript">
<!--
function zeit()
{
if(navigator.cookieEnabled == true && document.cookie)
{
a = document.cookie;
cookiewert = "";
while(a.length > 0)
{
cookiename = a.substring(0,a.indexOf('='));
if(cookiename == "zeitstempelindex")
{
cookiewert = a.substring(a.indexOf('=')+1,a.indexOf(';'));
break;
}
a = a.substring(a.indexOf(cookiewert)+cookiewert.length+1,a.length);
}
if(cookiewert.length > 0)
{
alter = new Date().getTime() - cookiewert;
if(alter > 3600000)
{
document.cookie = "zeitstempelindex=" + new Date().getTime() + ";";
window.stop();
location.reload(true);
}
else
{
return;
}
}
else
{
document.cookie = "zeitstempelindex=" + new Date().getTime() + ";";
window.stop();
location.reload(true);
}
}
else if(navigator.cookieEnabled == true)
{
document.cookie = "zeitstempelindex=" + new Date().getTime() + ";";
window.stop();
location.reload(true);
}
else
{
window.stop();
location.reload(true);
}
}
document.onreadystatechange = function ()
{
if (document.readyState == "interactive")
{
zeit();
}
}
// -->
</script>
Mahlzeit,
seit langen suche ich nach einem Weg, dass Seiten die vor mehr als 30 Minuten geladen wurden, nicht aus dem Cache des Browsers kommen, sondern neu geladen werden.
Und die entsprechenden Response-Header, die du sendest, greifen nicht?
Und die entsprechenden Response-Header, die du sendest, greifen nicht?
Bis jetzt hat nichts ständig geholfen. Welcher Response-Header hat bei Dir geholfen?
Mahlzeit,
ich sende immer Last-Modified, Cache-Control und Pragma, du musst halt dann die Uhrzeit entsprechend auf 30 Minuten Cachezeit anpassen.
Hello,
ich sende immer Last-Modified, Cache-Control und Pragma, du musst halt dann die Uhrzeit entsprechend auf 30 Minuten Cachezeit anpassen.
Was hältst Du von "expires"?
Das darf man mWn auch in die Vergangenheit verlegen und es wirkt ohne Rückfrage beim Server, ob die Ressource noch gilt.
Es ist nur ein wenig blöde, den Datumsstring zu formatieren:
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified gehört eher zu
HTTP/1.0 304 Not Modified
Cache-Control: max-age=[secs], must-revalidate
und führt zum Request-Header "If-Modified-Since", der dann als Response-Header wiederum "Last-Modified" oder "Not Modified" & Co. zur Folge ahebn sollte.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg