每两小时触发一次 javascript 函数

Triggering a javascript function every two hours

我正在制作 chrome 扩展。我需要每两个小时触发一次 javascript 函数。可以用;

.setInterval(function(){

...

},time);

但我读到有关 setInterval(,) 的内容,一些开发人员认为 'using setInterval is bad for browser optimization'。另一方面,我只需要一个触发器。我的意思是,我不会经常使用它。你会建议我继续使用 setInterval 还是有任何其他方法来创建不会让浏览器哭泣的基于时间的事件?

由于您询问的是 Chrome 扩展,您可以使用 chrome.alarms API 来完成。请注意,您需要 "alarms" 权限。

chrome.alarms.create("my2hoursAlarm", {periodInMinutes: 120});

chrome.alarms.onAlarm.addListener(function(alarm) {
  switch(alarm.name) {
    case "my2hoursAlarm":
      // Do stuff
      break;
  }
});

使用 Chrome 警报的好处是它们可以与 Event pages 配合使用。如果您的扩展程序没有做太多事情并且可以在这些事件之间完全卸载,chrome.alarms 将唤醒您的扩展程序,而 setInterval 将被卸载擦除。

Chrome 警报的唯一缺点是它的触发速度不能超过一分钟一次。在那种情况下,您无论如何都想使用 setInterval - 而不是使用事件页面。