2011-12-13 90 views
4

我只是做一个简单的扩展。铬扩展,每x分钟执行

我希望我的背景页面(或部分)执行每5分钟,得到一些数据,并显示桌面通知,如果any.How我能做到这一点来完成,这将是

+0

http://www.howtocreate.co.uk/tutorials/javascript/timers – CloudyMarble

回答

5

方式一:

setInterval(your_function, 5 * 60 * 1000) 

这将执行your_function每5分钟(5 * 60 * 1000个毫秒= 5分钟)

+6

5年来没有人指出setInterval需要几毫秒而不是秒? –

+0

我的假设是看上面的人会是开发人员。我只能说C#,Delphi和JavaScript,但他们的延迟/定时器总是使用毫秒 –

+0

哪些常用语言使用秒? @GawieGreef – Brandito

7

重要提示:如果你与(在清单"persistent": false)的Event page扩展,分钟间隔的将失败,因为后台页面将被卸载。

如果您的扩展使用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仍然是一个可以接受的solution