← Journal · Archiv

Forcing reload of page on back button (IE and FF)

April 30, 2008

Um bei einem Klick auf den Zurück-Button den Browser dazu zu bekommen die Seite nicht aus dem Cache zu laden, sondern sie erneut abzurufen, muss man im Header (vor dem Content-Type) folgende Strings abschicken:

printf((STRING)"Cache-Control: no-store, no-cache, must-revalidate\n");
printf((STRING)"Cache-Control: post-check=0, pre-check=0\n");

Für die PHP-Jungs sollte das so funktionieren (untested):

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

Das hat mich den ganzen Vormittag gekostet herauszufinden. Ich brauchte es für eine Seite, die sich via AJAX ziemlich oft verändert und in einem Cookie seinen Viewstate speichert um beim erneuten Laden seine Controls darüber richtig setzt.
Was bin ich froh, dass nun gefixt zu haben.

3 Kommentare

kju · April 30th, 2008 at 12:27 pm

Es empfiehlt sich zur Abwärtskompatibilität auch noch folgende Zeilen zu liefern:

Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache

lemming · April 30th, 2008 at 12:52 pm

Wer ist denn am 26. Juli 1997 um 5 Uhr geboren worden?

kju · April 30th, 2008 at 8:25 pm

Keine Ahnung, ein beliebiges anderes Datum in der Vergangenheit tuts auch.

Kommentar hinterlassen