2016-06-30 9 views
0

ページのコンテンツを30分ごとにリロードする必要があります(1時間後と30分後)。私はこのためにJavaScriptを考えていますが、私は以下のコードを試しましたが、無限ループに入ります。私はループを避けるためにそれをどのように変更するか分からない。毎時:00分と:30分にリロードするページ

metaタグは特定の時間に実行できないため役立ちません。

function refreshContent() { 
    var tDate = new Date(); 
    thisHour = tDate.getHours(); 
    thisMinute = tDate.getMinutes(); 
    thisSecond = tDate.getSeconds(); 
    setTimeout("refreshContent()",60000); // in milliseconds = 1 minute 

    if (thisMinute == 0 || thisMinute == 30) { 
     location.reload(); 
    } 

} 
refreshContent(); 

答えて

3

タイマーを1つだけ設定し、次に更新するタイミングを計算する必要があります。こうすることで、ページが正確に00または:30に読み込まれたときにページが繰り返しリロードされるのを防ぐことができます。次の半時間と* 60 * 1000をミリ秒に変換していることまで何分

var minute = new Date().getMinutes(), 
    nextRefresh = (30 - (minute % 30)) * 60 * 1000; 

setTimeout(function() { location.reload(); }, nextRefresh); 

30 - (minute % 30)が計算されます。リロードがトリガーされた後、タイマーは30分に設定されます。

+0

非常に簡単です! 15分(00,15,30,45)ごとにリフレッシュすることになるので、 'nextRefresh =(15 - (分%15))* 60 * 1000;'でしょうか? – Pat

+1

はい、そうです。 – JJJ

+0

助けてくれてありがとう – Pat

-2

あなたはすぐにrefreshContent機能を呼び出しているときにセットアップsetTimeout。お試しくださいsetTimeout(refreshContent, 60000);

関連する問題