AJAX und der böse lokale Cache
Feb 19
Meldungen AJAX, Cache, Firefox, JavaScript, Request, Response 2 Kommentare
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.
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.
RSS
Twitter
Feb 19, 2010 @ 08:45:56
Merci! fuer den Tip, das Problem hatte ich auch schon einmal – ich denke mit SugarCRM – da wurden immer wieder alte Daten dargestellt. Poeser Firefox
Feb 19, 2010 @ 09:25:08
wenn mans weiß
Ich hab da gestern ne längere Zeit dafür gebraucht