后台脚本
后台脚本适用于持续运行类型的脚本。后台脚本是脚本猫特有的脚本,后台脚本运行在沙盒中,无法操作 DOM 对象。可使用与油猴一致的 GM API 进行开发,对于兼容性会在文档中标出。
后台脚本 (@background)
后台脚本由 @background 属性声明,后台脚本将允许在开启脚本或者浏览器启动后,让脚本在后台持续运行。
定时脚本(@crontab)
定时脚本属于后台脚本的一种,适用于按时间周期重复执行的任务。
定时脚本通过 @crontab 属性声明,支持分钟级与秒级调度,并提供脚本猫扩展语法 once,用于避免在同一时间周期内重复执行。
⚠️ 注意事项:
- 一个脚本中 只有第一个
@crontab会生效 - 建议脚本的单次执行时间 + 重试时间不要大于 cron 间隔,否则可 能发生执行重叠
Cron 表达式说明
脚本猫的 cron 基于 node-cron 实现,在标准 cron 语法上做了少量扩展。
表达式格式
标准 5 位格式(推荐)
分 时 日 月 周
扩展 6 位格式(不推荐)
秒 分 时 日 月 周
⚠️ 不推荐使用 6 位格式 浏览器环境无法保证秒级精准执行,并且会增加性能开销,后台页可能被延迟调度。
各字段可用语法
| 语法 | 含义 | 示例 |
|---|---|---|
* | 任意值 | *(每分钟 / 每小时) |
| 数字 | 指定值 | 5(第 5 分) |
a,b,c | 多个离散值 | 1,15,30 |
a-b | 连续区间 | 10-23 |
*/n | 每 n 执行一次 | */5 |
a-b/n | 区间步长 | 10-50/10 |
周(day of week)规则
1–6:周一 ~ 周六0或7:周日
once 扩展语法说明
once 的含义
在 cron 表达式中使用 once,表示:
在当前时间周期内,只允许成功执行一次
即使在同一周期内,后续时间点仍然符合 cron 规则,也不会再次执行。
once 所在位置 = 限制的时间周期
once 写在哪一位,就表示“在该时间粒度内只执行一次”。
once 位置 | 行为含义 |
|---|---|
| 分位 | 每分钟只执行一次 |
| 时位 | 每小时只执行一次 |
| 日位 | 每天只执行一次 |
| 月位 | 每月只执行一次 |
| 周位 | 每周只执行一次 |
示例:
* once * * * // 每小时只执行一次
* * once * * // 每天只执行一次