Привет Я пытаюсь отслеживать время, проведенное пользователем на веб-странице. Поэтому я написал для этого javascript.setInterval время становится быстрее после каждого цикла
Сценарий начинает отслеживать время, когда окно становится сфокусированным, а затем приостанавливается, если пользователь переходит на другую вкладку или сводит к минимуму окно.
Ниже приведен код:
$(function(){
var count = 0;
var interval;
var ispaused=false;
function setPause(){
ispaused=true;
}
function unpause(){
ispaused=false;
}
$(window).on("blur focus", function(e) {
var prevType = $(this).data("prevType");
if (prevType != e.type) { // reduce double fire issues
switch (e.type) {
case "blur":
setPause();
clearInterval(interval);
break;
case "focus":
unpause();
var interval = setInterval(
function(){
if(!ispaused) {
$('#timer').text(count += 1);
}
},1000
);
break;
}
}
$(this).data("prevType", e.type);
});
});
Таймер запускается, когда вы сосредоточены области и пауз, когда вы размыть, но таймер становится быстрее после каждого цикла фокуса и размытия. Не знаю, почему это происходит. Пожалуйста помоги !
'clearInterval (interval);' этот интервал не такой, как этот 'var interval = setInterval ('так что вы не очищаете исправьте один. (удалите 'var') – Yoshi
попробуйте заменить' var interval = setInterval ('с' interval = setInterval (' – atinder
@atinder спасибо, что сработал! – aelor