Я реализую предупреждение о тайм-ауте сеанса для пользователя. Я использовал устройство для автоматического тайм-аута сеанса, но это для предоставления привилегий пользователю. Ниже приведен код, который я уже сделал. извиняюсь, если есть грубые ошибки.
Здесь мой таймер сеанса составляет 2,00 минуты. когда я проверяю значения минут и секунд, я получаю правильные значения. Но когда я добавляю его в модал, таймер не работает и показывает только 0: 1 представление:
<input id="user_activity" name="user_activity" type="hidden" value="active" />
<input id="user_loged_in" name="user_loged_in" type="hidden" value="true" />
<div id="inactivity_warning" class="modal fade" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close inactivity_ok" data-dismiss="modal" aria-
hidden="true">×</button>
</div>
<div class="modal-body">
<div id="custom_alert_message">
<p>You will be logged out in due to inactivity.</p>
</div>
<div class="modal-footer">
<a href="javascript:void(0)" class="btn inactivity_ok" data-dismiss="modal" aria-
hidden="true">O.K</a>
</div>
</div>
</div>
</div>
</div>
script:
window.onload = reset_main_timer;
document.onmousemove = reset_main_timer;
document.onkeypress = reset_main_timer;
var main_timer = 0;
var sub_timer = 0;
var user_loged_in = $("#user_loged_in").val()
function dialog_set_interval(){
main_timer = setInterval(function(){
if(user_loged_in == "true"){
let now = new Date();
for (i = 120; i > 0; i--) {
var deadline = new Date(now);
deadline.setSeconds(deadline.getSeconds() + i);
var distance = deadline.getTime() - now.getTime();
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
$("#inactivity_warning").modal("show");
document.getElementById("custom_alert_message").innerHTML = minutes + ":" + seconds;
}
sub_timer = setInterval(function(){
("#user_activity").val("inactive");
},2000);
}
},5000);
}
function reset_main_timer(){
clearInterval(main_timer);
dialog_set_interval();
}
$(".inactivity_ok").click(function(){
clearInterval(sub_timer);
if($("#user_activity").val() == "inactive"){
window.location = window.location // if your application not manage session expire
//automatically. clear cookies and session her
}
});
Любая помощь будет оценена. Заранее спасибо