2016-03-08 153 views
0

我做一個在線考試頁面。在這個頁面中,我有一個倒數計時器,它從數據庫中減去一個值。它工作正常,但當我刷新頁面重置。我必須停止重置計時器。如何停止重置一個JavaScript計時器,同時刷新頁面

這裏是我的JavaScript代碼計時器:

<script type="text/javascript"> 
function CountDown(duration, display) { 
    if (!isNaN(duration)) { 
     var timer = duration, minutes, seconds; 

     var interVal = setInterval(function() { 
      minutes = parseInt(timer/60, 10); 
      seconds = parseInt(timer % 60, 10); 

      minutes = minutes < 10 ? "0" + minutes : minutes; 
      seconds = seconds < 10 ? "0" + seconds : seconds; 

      $(display).html("<b>" +"Time Remaining: "+ minutes + "m : " + seconds + "s" + "</b>"); 
      if (--timer < 0) { 
       timer = duration; 
       SubmitFunction(); 
       $('#display').empty(); 
       clearInterval(interVal) 
      } 
     },1000); 
    } 
} 

function SubmitFunction(){ 
    $('#result').click(); 
} 

CountDown(<?php echo $t*30; ?>,$('#display')); //$t comes from database 

function disable_f5(e) { 
    if ((e.which || e.keyCode) == 116) { 
     e.preventDefault(); 
    } 
} 

$(document).ready(function(){ 
    $(document).bind("keydown", disable_f5); 
}); 
</script> 

回答

1

我剛纔看到你的問題,我要帶一條縫它。我建議的一件事是嘗試將值提交到本地存儲。您可以添加一個事件偵聽器,讓它指定偵聽重新加載,並在該重新加載時將整數值提交給JSON格式的本地存儲。只是一個想法。

1

如果您使用的是DB已經,怎麼樣添加表或一個額外的字段到註冊用戶開始考試,然後在每個頁面加載的日期時間現有的表 - 你可以從開始時間分貝,做一些時髦的計算,然後顯示剩餘的時間。

這樣,你是不是依託於瀏覽器中保持跟蹤計算(雖然我可能會嘗試爲它會話存儲作爲已經建議),但恆定的啓動時間,你可以放心地從計算。

+0

好主意,但有更多的做存儲試圖時間複雜度和做就可以計算.. –

+0

我認爲這是可能通過使用本地存儲,但我stucked ... –

1

試試這個作爲一種方法 - 請注意只上市證明的做法代碼框架。我個人將日期時間設置在數據庫中。

//at commencement of exam 
//js var commencementTime = (//calculation to get current time); 

localStorage.setItem('commencementTime ',commencementTime); 

//on page reload 
var commencementTime= localStorage.getItem('commencementTime '); 
    if(commencementTime){ 
    //code for calculating countdown} 
+0

我在我的代碼嘗試這個。 「localStorage.setItem( 'X',<?PHP的回聲$噸* 30;?>) 倒計時(localStorage.getItem( 'X'),$( '#顯示'));」。但不工作我認爲當網頁加載「localStorage.setItem(‘X’,)」套again.can你解決這個.. –

+0

做同樣的問題來到你的回答代碼。 ... –

+1

您可以將驗證添加到本地存儲以說明它是否爲空(或爲空) - 設置開始時間,但是如果它的值已經設置 - 則不要重新設置它。 – gavgrif

相關問題