2015-10-16 64 views
0

倒計時爲0時,如何讓頁面自我刷新?倒計時javascript更新頁面

例如,我想使頁面刷新使用JavaScript每10秒當10秒時5秒,它必須在頁面和計數從5到0上顯示,然後再刷新頁面

我試過這個

function startChecking() { 
    secondsleft -= 1e3; 
    if (secondsleft <= 3e4) { 
     document.getElementById("div_countdown").style.display = ""; 
     document.getElementById("timercounter").innerHTML = Math.abs(secondsleft/1e3) + " Seconds" 
    } 
} 

function startschedule() { 
    clearInterval(timeout); 
    clearInterval(interval); 
    timeout = setTimeout("window.location.href=window.location.href;", threshold); 
    secondsleft = threshold; 
    interval = setInterval(function() { 
     startChecking() 
    }, 1e3) 
} 

function resetTimer() { 
    startschedule(); 
    document.getElementById("div_countdown").style.display = "none"; 
    document.getElementById("timercounter").innerHTML = "" 
} 
var timeout, interval; 
var threshold = 108e4; 
var secondsleft = threshold; 
startschedule(); 
window.onload = function() { 
    startschedule() 
} 

但它不能正常工作。它每隔18分鐘刷新一次頁面,當它離開30秒時它會在屏幕上顯示,但問題是,它會刷新頁面,並且倒計時不會在0.它會刷新,同時從30秒開始刷新

+0

爲什麼jQuery的標籤? – j08691

+0

你是什麼意思? – student498989394

+0

爲什麼你把jQuery標籤放在你的問題上?我看不到。 – j08691

回答

0

我的猜測刷新超時和檢查間隔是不同步的?也許不是使用setTimeout進行刷新,而是在剩餘0秒時執行從檢查間隔開始的刷新。只需將此添加到startChecking功能的末尾即可:

if (secondsleft == 0){ 
    window.location.reload(); 
} 

然後刪除您設置爲執行刷新的超時。

工作樣本這裏: https://jsfiddle.net/k3jxku4s/1/

+0

謝謝你的回答,你會編輯和修復我的鱈魚嗎?我不知道那麼多在JavaScript – student498989394

+0

添加到您的開始檢查功能: 'if(secondsleft == 0){ \t window.location.reload(); }' 並且您可以刪除您爲刷新設置的超時時間。 – mbrightenfield