Creé una solución para la ventana emergente de tiempo de espera de sesión, para verificar el tiempo de inactividad, estoy usando un setInterval como se menciona a continuación
// Increment the idle time counter every 1 second. idleInterval = setInterval(timerIncrement, 2000, (@warningShowDelayMinutes * 60), (@sessionTimeout * 60), @warningTimeLeft); function timerIncrement(warningShowDelay, sessionTimeout) { idleTime++; console.log("before dialog open idleTime - :" + idleTime); if (idleTime >= warningShowDelay && idleTime <= sessionTimeout) { var isWarningPopupOpened = $('#session-expire-warning').dialog('isOpen'); if (!isWarningPopupOpened) { $("#session-expire-warning").dialog("open"); //console.log("before dialog after idleTime -:" + idleTime); } } }pero cuando nos movemos a otra pestaña/otra ventana, setInterval deja de funcionar, también probé con requestAnimationFrame pero también deja de funcionar después de que nos movemos a otra pestaña o ventana como se menciona a continuación.
var last = 0; function timerIncrement(now) { if (!last || now - last >= 1000) { last = now; //createNewObject(); idleTime++; console.log("before dialog open idleTime - :" + idleTime); if (idleTime >= (@warningShowDelayMinutes * 60) && idleTime <= (@sessionTimeout * 60)) { var isWarningPopupOpened = $('#session-expire-warning').dialog('isOpen'); if (!isWarningPopupOpened) { $("#session-expire-warning").dialog("open"); console.log("before dialog after idleTime -:" + idleTime); } } } requestAnimationFrame(timerIncrement); } requestAnimationFrame(timerIncrement);¿Alguien puede ayudar en esto para continuar con setinetrval o requestAnimationFrame después de cambiar de pestaña? soy nuevo en javascript
Puede usar el paquete NPM de temporizadores de trabajo para superar este obstáculo. Utiliza el trabajador web para evitar que el navegador acelere los temporizadores.