Я использую javascript setInterval(), чтобы проверять время простоя пользователя и показывать всплывающее предупреждение перед автоматическим выходом из системы. Но это не работает на нескольких вкладках (работает отлично на одной вкладке)Тайм-аут сеанса Javascript с всплывающим предупреждением для нескольких вкладок
Ниже приводится мой код:
localStorage.removeItem("idleTimeValue");
var idleInterval = setInterval(timerIncrement, 1000);
function timerIncrement()
{
if(localStorage.getItem("idleTimeValue")) {
idleTime = parseInt(localStorage.getItem("idleTimeValue")) + 1; //increments idle time by one second
} else {
idleTime = 1;
}
localStorage.setItem("idleTimeValue", idleTime);
var timeDiff = 600;
var totTimeRemaining = timeDiff-idleTime;
if(totTimeRemaining > 0) {
$('#timeoutWindow').modal('show');
var minutes = Math.floor(totTimeRemaining/60);
var seconds = totTimeRemaining - minutes * 60;
$('#timeoutRemainingTime').html(minutes+" minutes and "+seconds+" seconds");
} else {
window.location = httpHost+"/account/index/logout";
}
}
$(this).click(function (e)
{
localStorage.removeItem("idleTimeValue");
$('#timeoutWindow').modal('hide');
});
я устанавливаю время простоя в LocalStorage как -
localStorage.setItem("idleTimeValue", idleTime);
Итак, если Я открываю 3 вкладки, функция setInterval() запускается во всех вкладках, а idleTime увеличивается на 3 секунды вместо 1 секунды, а вычисления времени происходят неправильно.
Мне нужно показать всплывающее окно во всех вкладках, и нажатие продолжить на одной вкладке должно отразиться на всех других вкладках.
Может ли кто-нибудь предложить решение для этого? Помогите ребятам
http://phpobserver.wordpress.com/2014/02/02/inactive- timeout-warning-for-e-commerce-websites/ – Naincy
Вы также можете сохранить значение, которое ссылается на то, используется ли счетчик или нет. Затем вы можете проверить открытие второй и третьей вкладки, если вам нужно увеличить таймер или нет. –
Спасибо, Пол. Я попробую вот так ..! – jyothsna