每n小时在非活动浏览器选项卡上运行一次Javascript代码

每n小时在非活动浏览器选项卡上运行一次Javascript代码,javascript,timer,setinterval,web-worker,Javascript,Timer,Setinterval,Web Worker,我需要每24小时在网页上运行一段Javascript代码。我将代码包装在setInterval中。当该选项卡处于活动状态时,该选项起作用。然而,当我24小时后回来时,我看不到它起作用。根据我在互联网上的研究,不活动选项卡上的脚本似乎被浏览器取消了优先级。我看到了基于Web Workers的解决方案。这个问题有更简单的替代解决方案吗?最后,我有了一个解决问题的方案。我使用“visibilityState”事件来检测何时单击非活动选项卡,我还有一个窗口范围变量,用于记录上次执行脚本的时间(windo

我需要每24小时在网页上运行一段Javascript代码。我将代码包装在setInterval中。当该选项卡处于活动状态时,该选项起作用。然而,当我24小时后回来时,我看不到它起作用。根据我在互联网上的研究,不活动选项卡上的脚本似乎被浏览器取消了优先级。我看到了基于Web Workers的解决方案。这个问题有更简单的替代解决方案吗?

最后,我有了一个解决问题的方案。我使用“visibilityState”事件来检测何时单击非活动选项卡,我还有一个窗口范围变量,用于记录上次执行脚本的时间(window.globalVar.lastProfileTime)。使用这两种方法,我引入了以下逻辑:

const lastProfileTime=window.globalVar.lastProfileTime;
如果((document.visibilityState==='visible')&&
((typeof(lastProfileTime)==“未定义”)||
((currentTime-lastProfileTime)>86400000)){
//做点什么

}
作业是否需要每24小时精确运行一次?是的,这是正确的。js做什么?真的必须从那一页开始吗?浏览器扩展是否可以执行相同的操作(在所有页面上加载)?为了不限制超时,您需要保持文档处于活动状态,这意味着CPU将必须工作,即使它每天23h59次是免费的。这对你的硬件和地球都不好。