2016-08-22 10 views
0

私はオンライン試験システムを作成します。javascript - カウントダウンタイマーの起動と停止

私の質問:カウントダウンタイマーの開始といつかブラウザーページを閉じるよりも、適用ボタンをクリックします。同じテスト名をクリックした後、カウントダウンタイマーを続行し、開始を開始しません。 スクリーンショット

の下

screenshot-1

screenshot -2

ビュー:

<h2><p style="float: right" id="countdown"></p></h2> 

<a href="<?php echo base_url(); ?>student/Examinations/apply_examinations/<?php echo $value['examination_test_id']; ?>" class="btn btn-primary" id="apply" onclick="resetCountdownInLocalStorage();">Apply</a> 

    <script> 
     $(document).ready(function() { 
    $examination_test_id = $("#examination_test_id").val(); 
      $time_limit = $("#time_limit").val(); 
      var d = new Date($time_limit); 
      var hours = d.getHours(); 
      var minute = d.getMinutes(); 
      var minutes = hours * 60 + minute; 
      var seconds = 60 * minutes; 

      if (typeof (Storage) !== "undefined") { 
       if (sessionStorage.seconds) { 
        seconds = sessionStorage.seconds; 
       } 
      } 
      function secondPassed() { 
       var hours = Math.floor(seconds/3600); 
       var minutes = Math.floor((seconds - (hours * 3600))/60); 
       // var remainingSeconds = seconds - (hours * 3600) - (minutes * 60); 
       var remainingSeconds = seconds % 60; 

       if (remainingSeconds < 10) { 
        remainingSeconds = "0" + remainingSeconds; 
       } 
       if (minutes < 10) { 
        minutes = "0" + minutes; 
       } 

       if (typeof (Storage) !== "undefined") { 
        sessionStorage.setItem("seconds", seconds); 
       } 

       document.getElementById('countdown').innerHTML = hours + ":" + minutes + ":" + remainingSeconds; 

       if (seconds == 0) { 
        clearInterval(myVar); 
        document.getElementById('countdown').innerHTML = alert('Timeout'); 
        window.location.href = base_url + "student/Examinations/check_answer/" + $examination_test_id; 

        if (typeof (Storage) !== "undefined") { 
         sessionStorage.removeItem("seconds"); 
        } 
       } else { 
        seconds--; 
       } 
      } 
      var myVar = setInterval(secondPassed, 1000); 
     }); 

function resetCountdownInLocalStorage() { 
     sessionStorage.removeItem("seconds"); 
    } 
    </script> 
+0

私は現在のフォームであなたの質問を本当に理解していません。しかし、ブラウザを閉じて再度開くと、あなたの「状態」が失われます。新しいプログラム全体を効果的に実行しています。ページを開いた後に「続行」したい場合は、その情報をどこかに保存する必要があります –

+0

@DylanMeeusコードを書き込んでください – kishan123

+0

@DylanMeeus最初にスクリーンショットを見て、適用ボタンをクリックしてからタイマーを開始してブラウザのページを閉じる数分、同じ試験名をクリックしてからカウントダウンタイマーを開始し、開始しないでください – kishan123

答えて

0

それはこのlink

ブラウジングの寿命に応じて、ブラウザに依存してコンテキストは、ユーザエージェントが再起動後にセッションを再開することをサポートしている可能性があるため、実際のユーザエージェントプロセス自体の寿命とは無関係になる可能性があります。

タブ上でセッションのストロークをきれいにする必要があります。

+0

私は適用ボタンをクリックしますので、onclickイベントでボタンを適用してください.2秒後にこのイベントはセッションストアで取り除かれます – kishan123

+0

まずは、ボタンをクリックしてからタイマーを開始してブラウザのページを閉じて、数分後に同じ試験名をクリックしてからカウントダウンタイマーを開始し、開始しないでください – kishan123

+0

詳細を知らせなくては困ります。あなたはclick applyをブラウズしますか?あなたは同じページにいますか?あなたは新しいタブを開きますか? – Mathieu

関連する問題