私は時折、ページのステータスが最新(基本的にはLiveまたはOffline)であるかどうかを非同期的に確認する必要がある単一のページを持っています。あなたは、ページが最初に読み込まれたときに設定されているvarライブを持つ関数を持っていることがわかります。私は次に、liveのステータスが真であるか偽であるかを取得するためにサーバーにajaxリクエストを行います。私は最初のライブ変数と新しく返されたデータjsonオブジェクトを比較します。それらが同じであれば私は何もしませんが、異なる場合はいくつかのCSSクラスを適用します。再帰的にsetTimeoutで実行します(これを再帰的に行うより良い方法はありますか?)。基本的なAjaxキャッシュの問題
問題: data.liveは、dbで変更されても実行された初期時刻から変更されません。私はそれが最初の負荷で正しい値を返すので、私の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();
ありがとうニックは、私が探していたものです。素晴らしい仕事を! – michaelespinosa