Member 14667277 Ответов: 0

Как я могу держать постоянную таймер обратного отсчета, после обновление страницы в JavaScript


Я разрабатываю онлайн-экзаменационную систему, и когда я иду на следующий вопрос, моя страница перезагружается, и мой таймер запускается снова. Мне нужна постоянная таймера и автоматическое перенаправление на страницу результатов после таймаута. Пожалуйста, мне понадобится кто-то, чтобы помочь с примером кода. Благодарный вам.

Что я уже пробовал:

<span id="countdown" class="timer"></span>

var seconds = 40;
    function secondPassed() {
    var minutes = Math.round((seconds - 30)/60);
    var remainingSeconds = seconds % 60;
    if (remainingSeconds < 10) {
        remainingSeconds = "0" + remainingSeconds; 
    }
    document.getElementById('countdown').innerHTML = minutes + ":" +    remainingSeconds;
    if (seconds == 0) {
        clearInterval(countdownTimer);
        document.getElementById('countdown').innerHTML = "Buzz Buzz";
    } else {    
        seconds--;
    }
    }
var countdownTimer = setInterval('secondPassed()', 1000);

F-ES Sitecore

Вам нужно будет сохранить значение обратного отсчета, чтобы оно сохранилось при переходе на другую страницу. Вы можете использовать файл cookie или хранилище сеансов

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

Когда страница загружается, считайте значение обратного отсчета из хранилища сеансов, а если оно не существует, начните с самого начала, в противном случае начните со значения в хранилище сеансов. Вам также нужно будет сохранить это значение в хранилище сеансов по мере его изменения.

Чтобы предупредить ваш следующий вопрос, нет, я не буду писать код для вас. Если вы загуглите "javascript timer session storage", то, вероятно, обнаружите, что кто-то уже сделал это.

Richard Deeming

NB: Управление таймером экзамена в клиентском коде не является безопасным вариантом. Пользователь, принимающий экзамен, может легко подделать ваш таймер, чтобы дать себе дополнительное время.

0 Ответов