Javascript Chrome扩展:检查后台脚本是否正在运行
我有一个后台脚本,它使用setInterval命令在例程的基础上执行网络请求 我想知道后台脚本是否可以检测操作系统是否处于睡眠或待机状态,以便在恢复后台脚本时调整显示的计时器。根据以下回答,我了解setInterval计时器在睡眠期间暂停: 代码示例是background.jsJavascript Chrome扩展:检查后台脚本是否正在运行,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个后台脚本,它使用setInterval命令在例程的基础上执行网络请求 我想知道后台脚本是否可以检测操作系统是否处于睡眠或待机状态,以便在恢复后台脚本时调整显示的计时器。根据以下回答,我了解setInterval计时器在睡眠期间暂停: 代码示例是background.js set_start_time(); search_set_int = setInterval(function() { foo(); // Set the Auto Search St
set_start_time();
search_set_int = setInterval(function() {
foo();
// Set the Auto Search Start time for the next run
set_start_time();
}, frequency); // Set interval function
var total_time_left_sec = (frequency/1000) - (current_time_unix - start_time_unix)
谢谢保留一个带有上次间隔运行时间戳的局部变量。 在正常(无睡眠)执行时,时间戳大约为now周期,但在睡眠时,时间戳会变老,因此您知道自己来自睡眠。 也不要将时间间隔作为计算经过时间的“滴答声”
相反,请记住起始时间戳和从现在开始的减法()对于您的案例来说,最好的解决方案是将间隔减少到较小的数量(如1000毫秒),并使用剩余的时间向后台页面发送频繁的更新。例如,
//每60秒做一次作业var remainedTime=60;setInterval(函数(){if(-remainedTime感谢您的评论。我之所以使用此解决方案,是因为它很简单,我认为Zig Mandel关于使用setInterval tick来计算准确经过的时间的观点令人担忧,尽管我没有看到它发生。感谢您的想法。计时器每秒都在更新,因为它只是一个时钟。1.我需要存储最后运行的时间戳每秒2.检索上一个时间戳,并在恢复时计算从现在到上一个时间戳之间的延迟,并根据“延迟”调整计时器是。为了更复杂,当您检测到睡眠时,调整您的间隔,使其在周期发生变化的正确时刻发生