当页面重新加载/刷新时间限制重置时,我遇到时间限制问题。
P.S:我将此时间限制用于我的在线测验计划,并且我使用标题位置转到下一个问题。
HTML
<label id="time">1:00</label>
JAVASCRIPT
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
localStorage.setItem('time_remaining_min', minutes);
localStorage.setItem('time_remaining_sec', seconds);
var minutes_left = localStorage.getItem('time_remaining_min');
var seconds_left = localStorage.getItem('time_remaining_sec');
display.text(minutes_left + ":" + seconds_left);
if (--timer < 0) {
//finished
}
}, 1000);
}
jQuery(function ($) {
var fiveMinutes = 60 * 5,
display = $('#time');
startTimer(fiveMinutes, display);
});
编辑: 我尝试使用本地存储但没有工作
localStorage.setItem('time_remaining_min', minutes);
localStorage.setItem('time_remaining_sec', seconds);
var minutes_left = localStorage.getItem('time_remaining_min');
var seconds_left = localStorage.getItem('time_remaining_sec');
display.text(minutes_left + ":" + seconds_left);
答案 0 :(得分:2)
将计时器值存储在cookie或本地存储中。
答案 1 :(得分:0)
不确定您是否能够通过页面刷新来解决这个问题。也许更好的答案是不要重新加载页面,并使用AJAX做任何你需要做的事情。
答案 2 :(得分:0)
您可以将时间存储在Cookie中。
//Set cookie
time_remaining = 200;
$.cookie('time_remaining', time_remaining);
//Retrieve cookie
time_remaining = $.cookie('time_remaining');
您应该能够轻松地在您的代码中实现上述内容(提示:每当计时器减少时,节省cookie中剩余的时间)。
请注意,这并不安全,用户可以在浏览器中轻松清除和修改Cookie。如果您正在寻找更安全的东西,您需要实现一些后端功能。