У меня есть одна страница, которая мне нужна, чтобы иногда асинхронно проверять сервер, чтобы видеть, является ли состояние страницы текущим (в основном, Live или Offline). Вы увидите, что у меня есть функция с переменной live, которая устанавливается при начальной загрузке страницы. Затем я делаю ajax-запрос к серверу, чтобы узнать, является ли статус live истинным или ложным. Я сравниваю исходную переменную реального времени с недавно возвращенным объектом данных json. Если они одинаковые, я ничего не делаю, но если они разные, я применяю некоторые классы CSS. Я рекурсивно запускаю его с помощью setTimeout (есть ли лучший способ сделать это рекурсивно?).
Моя проблема:
data.live не изменяется с момента своего первоначального запуска, даже если он изменился в БД. Я знаю, что мой MySQL работает, потому что он возвращает правильное значение при начальной загрузке. Это похоже на проблему кеширования.
Любая помощь очень ценится.
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();