Wir haben seit kurzem Monitore (NEC 30″) die wir an den Eingängen platzieren. Dort sollen alle X Sekunden verschiedene Meldungen eingeblendet werden. Meine Aufgabe besteht nun darin eine Verwaltung sowie das Frontend (HTML/CSS) für diese Monitore zu erstellen. Als Browser wird einfach der Firefox genutzt und im Vollbildmodus dargestellt. Die Verwaltung ist im Prinzip nichts anderes als ein paar Eingabefelder, um diese geht es jetzt auch nicht.

Vielmehr ärgerte mich heute der lokale Cache, dazu muss ich jetzt ein wenig ausholen:

Ausgangslage

Wie bereits im oberen Absatz erwähnt werden auf diesen Monitoren diverse Meldungen ausgegeben, diese kommen alle samt aus einer MySQL Datenbank, eigentlich keine großes Problem. Funktioniert auch einfach, nach jedem Aufruf wird ein Request abgeschickt um nachzusehen ob es neue Daten gibt. Wenn keine Verbindung besteht wird ein alternativ Text dargestellt und nun kommt das Problem.

Problem

Wenn jetzt die Verbindung zum Server gekappt wird, würde man erwarten das die Anfrage fehl schlägt. Zuerst dachte ich es ist ev. nötige den response neu zu initialisieren doch auch das löste das Problem nicht. Als Antwort bekomme ich immer den Status 200, also alles ist ok. Grund dafür ist der lokale Cache. Die URL ändert sich nicht und somit greift dieser auf den offline Cache zurück.

Lösung

Die erste Lösung wäre es den Offline Cache abzustellen. Hierzu muss in der Adressleiste des Firefox about:config eingetragen werden. Im Filter sucht man jetzt nach browser.cache.offline.enable. Standardmäßig ist der offline Cache aktiviert (true), mit Klick auf den Wert wird dieser deaktiviert (false). Nun zwingt man den Browser jedesmal dazu den Request zu senden ohne auf den Cache zurückzugreifen.

Browsercache deaktivieren

Browsercache deaktivieren

Die zweite Lösung, und meiner Meinung nach bessere, ist es einfach per URL Parameter einen Timestamp anzuhängen, somit kann dieser nicht gecacht werden.

Ähnliche Beiträge