Browsercache clever nutzen

jspit

Lounge-Member
Werden serverseitig Inhalte wie z.B. die Bilder einer Webcam regelmäßig aktualisiert, dann ist es gängige Praxis clientseitig an die URL eine Zufallszahl anzuhängen, damit der Nutzer auch den aktuellen Inhalt zu Gesicht bekommt und nicht alte Inhalte aus dem Browsercache.
Werden auf den Server die Inhalte in größeren Abständen aktualisiert, z.B. nur alle Stunde, dann ist es ausreichend auch alle Stunde den neuen Inhalt vom Server zu holen und nicht jedesmal beim Neuladen der Seite.
Die folgende Funktion generiert eine Zufallszahl in Abhängigkeit von einem vorgegebenen Zeitintervall:
PHP:
function randomAtIntervall(seconds){
  var d = new Date();
  var tzo = d.getTimezoneOffset(); 
  return parseInt((d-tzo*1000*60)/(1000 * seconds));
}

randomAtIntervall liefert z.B. mit 60 als Parameter immer zur neuen Minute eine neue Zahl,
mit 15*60 immer jede viertel Stunde (00,15,30,45), mit 60*60 zur vollen Stunde und mit 60*60*24 immer für jeden neuen Tag um 00:00.

Hab hierfür ein kleines jsfiddle gemacht, um diverse Intervalle probieren zu können.

Nutzbar ist das ganze nicht nur für Bilder, sondern auch für div. Ajaxanwendungen.

LG jspit
 
Zuletzt bearbeitet:
Die obige Funktion war ein Schnellschuß. Lasse mir gerne einen besseren Namen spendieren.
Im Minuten und Stundenbereich ist auch gar keine Funktion notwendig. Um z.B. alle 10 Minuten eine neue Zahl zu generieren, reicht ein
PHP:
 parseInt(new Date/600000)

als Parameter an die URL zu hängen (Divisor = Minuten * 60 * 1000)
Das ist auch die typische Anwendung, die ich bisher nutze.

Schön kurz ist auch
PHP:
(new Date-1)

um immer einen neuen Request zu erzwingen.
 
Zurück
Oben