Chrome扩展,每x分钟执行一次

chrome extension, execute every x minutes

本文关键字:一次 执行 分钟 扩展 Chrome      更新时间:2023-09-26

我只是在做一个简单的chrome扩展。

我希望我的背景页(或部分)每5分钟执行一次,以获得一些数据并显示桌面通知,如果有的话。我该怎么做呢

重要提示:如果您使用Event页面(清单中的"persistent": false)进行扩展,setInterval将在5分钟间隔内失败,因为背景页面将被卸载。

如果您的扩展使用window.setTimeout()或window.setInterval(),切换到使用警报API代替。如果事件页面关闭,基于dom的计时器将不被执行。

在这种情况下,您需要使用chrome.alarms API实现它:

chrome.alarms.create("5min", {
  delayInMinutes: 5,
  periodInMinutes: 5
});
chrome.alarms.onAlarm.addListener(function(alarm) {
  if (alarm.name === "5min") {
    doStuff();
  }
});

在持久的背景页面的情况下,setInterval仍然是一个可接受的解决方案。它也应该在事件页面中工作很短的时间间隔(以秒为单位,而不是以分钟为单位),但它会阻止它卸载,从而抵消了它的好处。

可以这样做:

setInterval(your_function, 5 * 60 * 1000)

每5分钟执行一次your_function(5 * 60 * 1000毫秒= 5分钟)