每两小时触发一次javascript函数

时间:2015-01-25 22:32:39

标签: javascript jquery google-chrome-extension

我正在制作Chrome扩展程序。我需要每两个小时触发一次javascript函数。可以这样做;

.setInterval(function(){

...

},time);

但是我读到了关于setInterval(,)的一些开发人员认为'使用setInterval对浏览器优化不利'。另一方面,我只需要一个触发器。我的意思是,我不会经常使用它。你会建议我继续使用setInterval还是有其他方法来创建基于时间的事件,这些事件不会让浏览器哭泣?

1 个答案:

答案 0 :(得分:4)

由于您询问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 - 而不是使用事件页面。