Я создал таймер, используя javascript, чтобы убедиться, что таймер не сбрасывается каждый раз, когда пользователь обновляет sh страницу, я передаю, сколько времени прошло с момента доступа к странице на сервере как следующее:
time_passed = (now - answer.created_at).total_seconds()
time_passed = int(time_passed)
seconds_left = 30 - time_passed
answer.seconds_left = seconds_left
completion_time = 30 -seconds_left
answer.completion_time = time_passed
answer.save()
context = {'time_passed':time_passed}
json_string = json.dumps(context)
response = HttpResponse(json_string, content_type="application/json")
return response
Затем я использую значение time_passed в моем JS таймере, и он работает нормально, за исключением того, что по таймауту завершения_time должно быть 30 секунд, а seconds_left должно быть 0 секунд. но по какой-то причине этого не происходит, когда я продолжаю получать Complete_time = 29 и seconds_left = 1
function onTimesUp() {
clearInterval(timerInterval);
}
function startTimer() {
timerInterval = setInterval(() => {
$.ajax({
type: "GET",
url: server_url+ timerPath,
success: function (context) {
timePassed = context.time_passed;
}
});
timePassed = timePassed += 1;
timeLeft = TIME_LIMIT - timePassed;
document.getElementById("base-timer-label").innerHTML = formatTime(timeLeft)
if (timeLeft === 0) {
onTimesUp();
}
}, 1000);
}
чего мне не хватает?