我正在制作Chrome扩展程序。我需要每两个小时触发一次javascript函数。可以这样做;
.setInterval(function(){
...
},time);
但是我读到了关于setInterval(,)的一些开发人员认为'使用setInterval对浏览器优化不利'。另一方面,我只需要一个触发器。我的意思是,我不会经常使用它。你会建议我继续使用setInterval还是有其他方法来创建基于时间的事件,这些事件不会让浏览器哭泣?
答案 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
- 而不是使用事件页面。