Zum Inhalt springen

[Ajax] Cache


Empfohlene Beiträge

Hi und hallo,

ich arbeite nun seit einiger Zeit mit Ajax. Klasse Sache das Ganze!

Leider muss ich in meiner neuesten Anwendung feststellen, dass manchmal(!) "Dinge" gechached werden.

Z.b. bei "in place editing" via Formularfelder, manchmal aber auch ganze Inhalte, die ich in <div> Container reinlade.

Habe einiges ergoogelt, nichts bis jetzt löst das Problem aber 100%

1. Die PHP-Lösung:


<?php
Header("Pragma: no-cache");
Header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
Header("Content-Type: text/html;");
?>
[/PHP]

2. Die HTML-Lösung

[code] <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT"> [/code]

Ich habe beides, auch in Kombination, ausprobiert. Leider wird trotzdem noch gecached...

Gibts noch andere Ansätze? Wie macht Ihr das so?

Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sind denn die entsprechenden Browser-Einstellungen auch entsprechend angepasst? Header setzten ist schön und gut, aber damit passiert ja auch nichts anderes als eine Aufforderung "Bitte bitte, lieber Browser lade diese Resource jedesmal nach". Ob der Browser sich daran hält steht auf einem ganz anderen Blatt. Ohne mich darauf festlegen zu wollen aber ich meine mich daran erinnern zu können, dass der IE beispielsweise eine Konfigurationsmöglichkeit besitzt wo immer zuerst - falls vorhanden - der Cache-Inhalt geliefert wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich versuchs mal anschaulich zu erklären:

- ich habe eine HTML-Tabelle in der Benutzerdaten, aus einer Datenbank, wie Vor- und Nachname in den einzelnen Zellen stehen.

- Beim Klick auf eine Zelle wird via Ajax der Code in der Zelle, also z.b

<span>Der Vorname</span>

mit

<input type="text" value="[ausDerDatenbankWert]">

ausgetauscht.

- Beim ersten Mal austauschen ist alles Ok, es steht der richtige Value in meinem <input> sagen wir value="Der Vorname"

- Nun ändere ich den Wert auf "Der Vorname_NEU" und speichere.

- Der Inhalt wird wieder ausgetauscht und nun zu

<span>Der Vorname_NEU</span>

- Wenn ich jetzt aber wieder auf die Zelle Klicke öffnet sich das <input> und drin steht als value wieder nur "Der Vorname"

- Das kann ich so oft machen, und eingeben was ich will, es steht immer "Der Vorname" drin, obwohl der Wert ja eigentlich aktuell aus der Datenbank geholt werden muss. Anscheinend wird gecached.

- ABER: eben nur bei <input> Feldern, in meinen <span> etc. Feldern passiert das nicht!

- Ich dachte noch daran meinem input feld irgendetwas "uniques" zu geben wie z.b. ein

alt="<?php echo(md5(time())); ?>"

aber auch dann bleibt der cache bestehen.

Kennt da jemand eine Möglichkeit das Caching auszuschalten?

Vielen Dank für jeden Tipp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sind denn die entsprechenden Browser-Einstellungen auch entsprechend angepasst? Header setzten ist schön und gut, aber damit passiert ja auch nichts anderes als eine Aufforderung "Bitte bitte, lieber Browser lade diese Resource jedesmal nach". Ob der Browser sich daran hält steht auf einem ganz anderen Blatt. Ohne mich darauf festlegen zu wollen aber ich meine mich daran erinnern zu können, dass der IE beispielsweise eine Konfigurationsmöglichkeit besitzt wo immer zuerst - falls vorhanden - der Cache-Inhalt geliefert wird.

Ohja, Du hattest recht. Ich habe nun im IE das Caching auf "Bei jedem Seitenaufruf neue Version laden" gesetzt und endlich endlich funktioniert alles.

Danke Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...