CHROME扩展笔记之chrome.alarms定时器的使用

chrome.alarms

描述: 使用 chrome.alarms API 安排代码周期性地或者在将来的指定时间运行。
可用版本: 从 Chrome 22 开始稳定支持。
权限: “alarms”

类型

Alarm (Alarm的属性)

  • name ( string )
    该定时器的名称。
  • scheduledTime ( double )
    该定时器计划的触发时间,以纪元以来所经过的毫秒数为单位(例如 Date.now() + n)。由于性能原因,定时器可能会延迟至该时间后的任意时间。
  • periodInMinutes ( optional double )
    如果不是 null 的话,该定时器会重复触发,每隔 periodInMinutes 分钟触发。

方法

create

chrome.alarms.create(string name, object alarmInfo)

创建定时器,在 alarmInfo 指定的时间前后将产生 onAlarm 事件。如果已经存在具有相同名称(或者如果没指定而没有名称)另一个定时器,它将会被取消,并由这一定时器取代。

为了降低用户计算机的资源占用,Chrome 浏览器将定时器限制为最多每 1 分钟一次,而且可能会推迟任意长度的时间。也就是说,将 delayInMinutes 或 periodInMinutes 设置为小于 1 的值不会被认可,并会导致警告,when 可以设置为当前时间后小于1分钟的值,但是定时器至少在 1 分钟内不会运行。

为了帮助您调试您的应用或扩展程序,当您以未打包的形式加载时,不会限制定时器产生的频率。

参数

  • name ( optional string )

标识该定时器的可选字符串,默认为空字符串。

  • alarmInfo ( object )

描述定时器触发的时刻,初始时刻必须由 when 或者 delayInMinutes 中的某一个(但不能同时)指定。如果设置了 periodInMinutes,定时器将在初始事件后每隔 periodInMinutes 分钟重复。如果重复定时器的 when 或 delayInMinutes 都没有设置,periodInMinutes 将作为 delayInMinutes 的默认值。注意:when是当什么时候执行,delayInMinutes 是当前时间之后的延迟,两个字段互斥,只能设置一个否则报错

  • 属性:
    when ( optional double )
    定时器应该触发的时刻,以纪元以来所经过的毫秒数为单位(例如 Date.now() + n)。
     
    delayInMinutes ( optional double )
    以分钟为单位的时间长度,在指定时间之后将产生 onAlarm 事件。
     
    periodInMinutes ( optional double )
    如果设置了该属性,定时器将在由 when 或者 delayInMinutes 指定的初始时间后每隔 periodInMinutes 分钟触发。如果没有设置,定时器只会触发一次。

get

chrome.alarms.get(string name, function callback)

获取指定定时器的有关详情。

参数

  • name ( optional string )
    要获取的定时器名称,默认为空字符串。
  • callback ( function )
    callback 参数应该指定一个如下形式的函数:
    function(Alarm alarm) {...};

getAll

chrome.alarms.getAll(function callback)

获取包含所有定时器的数组。

参数

  • callback ( function )
    callback 参数应该指定一个如下形式的函数:
    function(array of Alarm alarms) {...};
    alarms ( array of Alarm )

clear

chrome.alarms.clear(string name)

清除指定名称的定时器。

参数

  • name ( optional string )
    要清除的定时器名称,默认为空字符串。

clearAll

chrome.alarms.clearAll()

清除所有定时器。

事件

onAlarm

当定时器到达时间时产生,对于事件页面很有用。

addListener

chrome.alarms.onAlarm.addListener(function callback)

参数

  • callback ( function )
    callback 参数应该指定一个如下形式的函数:
    function(Alarm alarm) {...};
  • alarm ( Alarm )
    到达时间的定时器。

案例

// 创建alarms事件
chrome.alarms.create('slongTest1', {
    
    
    when: zsl.strtotime('+10s') // 10秒后执行,zsl.strtotime是封装的一个时间函数
    ,periodInMinutes: 1 // 周期执行每几分钟执行一次
});
// 监听事件,所有事件响应都会在这里触发,只需设置一次
chrome.alarms.onAlarm.addListener(function(alarmInfo){
    
    
    console.log(alarmInfo);
    console.log('当前时间:' + zsl.date());
    console.log('本次周期时间:' + zsl.date('Y-m-d H:i:s', alarmInfo.scheduledTime));
})

chrome.alarms案例-slongzhang@qq.com

参考资料

Guess you like

Origin blog.csdn.net/qq_35606400/article/details/120445306