-1

我在 Jquery/javascript 中内置了这个功能,当他们的会话即将超时时,用户会收到通知。然后他们可以选择扩展它。如果他们没有做出选择,弹出窗口会自行关闭,并且浏览器会被重定向到登录页面。有一段时间它工作得很好。但现在我注意到只有当我在计算机上处​​于活动状态时它才能正常工作。如果计算机一整天无人看管,则弹出窗口不会开始倒计时,直到用户解锁计算机并再次登录。

有人知道当计算机长时间无人看管时停止执行javascript的这种行为吗?

更新:有没有办法让标签不睡觉?否则,浏览器将无法在正确的时间重定向。

4

2 回答 2

1

setTimeout仅在选项卡处于活动状态时有效。在某些浏览器中,即使更改选项卡也会使其停止计数。因此,不仅如果您在计算机上,而且如果您不在特定页面上,它可能无法正常工作。同样在具有多任务处理的移动设备上,它肯定会失败,忘记标签,应用程序经常进入暂停模式。看看这个问题,它提供了与 Luka 相同的解决方案,并带有一个代码示例:

当 Chrome 中的选项卡处于非活动状态时,如何使 setInterval 也起作用?

您可能希望对经过的时间进行两次检查,一次检查是否需要显示弹出窗口,另一次检查是否需要显示弹出窗口,使用经过的总时间而不是使用不同的倒计时。

于 2012-06-19T13:33:26.267 回答
0

i would suggest logging the current time when the page is loaded and then calling a function every 10 seconds of so that checks if the time passed is more than x amount, the reason your problem occurs is most likely because the default timeout function only counts down while the page is being rendered.

于 2012-06-19T13:17:32.900 回答