2016-06-30 151 views
0

我需要每30分鐘(在小時過後的一小時和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

您只需設置一個計時器並計算下次刷新的時間。這樣,當頁面加載到:00或30時,可以防止頁面重複加載。

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

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

30 - (minute % 30)計算多少分鐘,直到下一個半小時* 60 * 1000轉換到這毫秒。重新啓動後,計時器設置爲30分鐘。

+0

更容易!我們可能會每15分鐘做一次更新(00,15,30,45),所以要做到這一點:nextRefresh =(15 - (分鐘%15))* 60 * 1000;'? – Pat

+1

是的,沒錯。 – JJJ

+0

感謝您的幫助 – Pat

-2

您會立即調用refreshContent功能,當你設置setTimeout。嘗試setTimeout(refreshContent, 60000);