2017-03-26 2 views
0

このページがreadloadedされるたびにタイマーはこれを避ける方法をリフレッシュしてリセットしていますか?

<script> 
//define your time in second 
    var c=120; 
    var t; 
    timedCount(); 

    function timedCount() 
    { 

     var hours = parseInt(c/3600) % 24; 
     var minutes = parseInt(c/60) % 60; 
     var seconds = c % 60; 

     var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); 



     document.getElementById("timer").innerHTML=result; 


     if(c == 0) 
     { 
      //setConfirmUnload(false); 
      //$("#quiz_form").submit(); 
      window.location="result.php?td=$tid"; 
     } 
     c = c - 1; 
     t = setTimeout(function() 
     { 
     timedCount() 
     }, 
     1000); 
    } 
</script> 

答えて

2

は、古いページのコンテキスト全体が破壊され、全く新しいコンテキストが作成されることを避けるために、どのようにさわやかにリセットされ、私のjavaスクリプトコードです。次のページの読み込み時に実行される1ページの負荷からタイマーを保持することはできません。

あるページの読み込みから次のページへの読み込みを行った後、次のページの読み込みを行う必要がある場合は、その状態を調べて、以前のページの設定方法を正確に決定してから保存しますHTML5ローカルストレージまたはCookie内のページ読み込み間の状態

もう1つの方法は、ページをリロードせず、代わりにajaxとjavascriptを使用してページの内容を動的に更新することです。そうすれば、既存のタイマーは、ページの再読み込みがまったく実行されないため、そのまま実行されます。

カウントダウンに何時間残っているかをタイマーで確認しようとしている場合は、カウントダウンゼロ時間をHTML5ローカルストレージに設定し、リロードしたページが読み込まれたら設定時間を確認できますローカルストレージに保存し、以前に設定された時間と一致するようにカウントダウンタイマーを開始します。

クッキーを使用するか、HTML5を使用してローカル/セッションストレージを使用して状態を保存します。

HTML

<a href="#" onclick="SaveTime()">Save Current Time</a> | 
<a href="#" onclick="retrieveTime()">Retrieve Saved Time</a> 

<div id="result"></div> 

JAVASCRIPT

function SaveTime(){ 
var date = new Date(); 
var timeObj = { sec:date.getSeconds(), min:date.getMinutes(), hr:date.getHours() }; 
localStorage.setItem("timeObj", JSON.stringify(timeObj)); 
$('#result').append(JSON.stringify(timeObj)+' -- > Saved<br />'); 
} 

function retrieveTime(){ 
var timeObj = JSON.parse(localStorage.getItem("timeObj")); 
//You have the time with you now 
//You have the time with you now 
$('#result').append(timeObj.hr+':'+timeObj.min+':'+timeObj.sec+' --> Retrieved<br />'); 
} 

そのクリック上のローカルストレージにタイマーを保存するだけで基本的な例。それを修正し、タイマのjavascript関数を定期的に呼び出します。

+0

可能であれば、セッション中にタイマーを保存するためのコードを入力してください。だから私はそれについて明確な画像を得るでしょう –

+0

https://www.w3schools.com/html/html5_webstorage.asp HTML5でlocalstorageを保存して取得するための最良の例 –

+0

この回答はOPの問題を解決していますか?コードで何か試しましたか? OPはコードソリューションを求めています。詳細ではありません –

関連する問題