Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展:检查后台脚本是否正在运行_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展:检查后台脚本是否正在运行

Javascript 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

我有一个后台脚本,它使用setInterval命令在例程的基础上执行网络请求

我想知道后台脚本是否可以检测操作系统是否处于睡眠或待机状态,以便在恢复后台脚本时调整显示的计时器。根据以下回答,我了解setInterval计时器在睡眠期间暂停:

代码示例是background.js

    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.检索上一个时间戳,并在恢复时计算从现在到上一个时间戳之间的延迟,并根据“延迟”调整计时器是。为了更复杂,当您检测到睡眠时,调整您的间隔,使其在周期发生变化的正确时刻发生