@pluve/magic-background-worker
v0.0.3
Published
web worker
Downloads
1
Maintainers
Keywords
Readme
@pluve/magic-background-worker
提供稳定定时器。解决页面长时间失焦情况下,setInterval 或 setTimeout 被浏览器降频问题。
Usage
import BackgroundWorker from '@pluve/magic-background-worker';
BackgroundWorker.getInstance().registerBackgroundWorker({
minExecuteInterval: 1000,
callback: data => {
console.log('BackgroundWorker Data: ', data);
},
});
Description
registerBackgroundWorker
注册 Web Worker,入参及说明:
| 编号 | 参数名 | 必填 | 说明 | | ---- | ------------------ | ---- | ------------------------------------------------ | | 1 | minExecuteInterval | 否 | 最小执行频率,建议间隔 1 秒,单位毫秒。默认 1000 | | 2 | callback | 否 | 定时任务回调,若不传则不会立即启动 worker |
startWorker
启动 Web Worker,入参及说明:
| 编号 | 参数名 | 必填 | 说明 | | ---- | ------------------ | ---- | ------------------------------------------------ | | 1 | minExecuteInterval | 否 | 最小执行频率,建议间隔 1 秒,单位毫秒。默认 1000 | | 2 | callback | 否 | 定时任务回调 |
stopWorker
停止 Web Worker
callback data
- 建议调用方将定时任务间隔设置为业务需要的最小定时间隔。如业务需要 10’s 执行一次,则可将 minExecuteInterval 设置为 10000;
- 若同时存在 10‘s 一次和 15’s 一次的定时任务,则可将 minExecuteInterval 设置为 5‘s,即 10 和 15 的最大公约数;
ticket
为任务回调时系统时间戳;count
为 Web Worker 启动后定时任务执行次数;action
值固定为’BackgroundWork‘
export interface IBackgroundData {
/**
* 定时任务回调action
*/
action: 'BackgroundWork';
/**
* 定时任务回调时间戳
*/
ticket: number;
/**
* 定时任务计数
*/
count: number;
}
TODO
支持耗时任务在 worker 中执行并将结果 post 到主线程。