Como dice la pregunta:
setTimeout(myFunc, delay); myFunc(){ //do something } Entonces, ¿puedo considerar que si myFunc() se llama después del tiempo de delay , eso garantiza que el usuario estuvo en la página durante el tiempo de delay ?
Básicamente, quería ejecutar una función después de asegurarme de que el usuario estuvo en la página durante un período de tiempo determinado. Entonces, ¿es esta la forma correcta de hacerlo con javascript o hay una opción aún mejor para hacerlo?
Page_Visibility_API le permite verificar si el usuario está en la página: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API Y también tiene un método de cambio de visibilitychange , que probablemente sea la forma preferible.
Ejemplo: Pausa de la música en la transición a oculto
document.addEventListener("visibilitychange", function() { if (document.visibilityState === 'visible') { backgroundMusic.play(); } else { backgroundMusic.pause(); } });