Ich habe eine einzelne Seite, die ich gelegentlich überprüfen muss den Server asynchron überprüfen, ob der Status der Seite aktuell (im Grunde, Live oder Offline) ist. Sie werden sehen, dass ich eine Funktion mit einer Var-Phase habe, die beim Laden der Seite festgelegt wird. Ich mache dann eine Ajax-Anfrage an den Server, um herauszufinden, ob der Status von Live wahr oder falsch ist. Ich vergleiche die ursprüngliche Live-Variable mit dem neu zurückgegebenen Daten-JSON-Objekt. Wenn sie gleich sind, tue ich nichts, aber wenn es anders ist, wende ich einige CSS-Klassen an. Ich führe es rekursiv mit setTimeout (gibt es eine bessere Möglichkeit, dies rekursiv zu tun?).Basic Ajax Cache Problem
Mein Problem: data.live ändert sich nicht von seiner ursprünglichen Zeit es läuft auch wenn es in der db geändert hat. Ich weiß, dass mein MySQL funktioniert, weil es den richtigen Wert beim ersten Laden zurückgibt. Es scheint wie ein Caching-Problem.
Jede Hilfe wird sehr geschätzt.
function checkLive() {
var live = <?=$result["live"]?>;
$.ajax({
type: 'get',
url: '/live/live.php',
dataType: 'json',
success: function(data) {
console.log('checking for updates... current:' + data.live);
if (data.live == live) {
return;
} else {
var elems = $('div.player_meta, object, h3.offline_message');
if (data.live == '1') {
elems.removeClass('offline').addClass('live');
} else {
elems.addClass('live').addClass('offline');
}
}
}
});
setTimeout(function() { checkLive() } ,15000);
}
checkLive();
Dank Nick das ist genau das, was ich gesucht habe. Hat super funktioniert! – michaelespinosa