今天在code review时,发现之前遗留的问题:
在一个视频播放页面,有一个40ms的interval一直在阻碍,导致视频延时逐渐增大
于是写了一个worker单独把计时器拉出去跑了
实现步骤如下
由于用的是vue-cli,在webpack下要安装worker-loader
依赖才能单独加载worker.js
npm install worker-loader --save-dev
更改 vue.config.js 文件的配置项
configureWebpack:{ module: { rules: [ { test: /\.worker\.js$/, loader: 'worker-loader', options: { inline: true, fallback: false, name: '[name]:[hash:8].js' } } ] }, }
注意,worker-loader配置项一定要写在js-loader的前边,否则报错。
下面写封装的方法,为了适配多计时器的情况,需要建一个class类
/** * worker类 * export定时器方法 * */ export class workerTimer { constructor(){ } timeInterval(name,interval,_this){ console.log(name+'计时器已建立'); this[name] = setInterval(() => { _this.postMessage({name:name,message:interval/1000+'秒到了'}) },Number(interval)) } }
然后用worker主方法调用这个类,e为组件内传入的计时器数组
import {workerTimer} from './workerTimer' /** *通过遍历器遍历参数 *new出新的worker类 *调用定时器方法 */ self.onmessage = function (e) { e.data.map((item) => { let workertimer = new workerTimer() workertimer.timeInterval(item.name,item.interval,self) }) };
在vue组件内引入worker
import Worker from './worker.js'
在methods里写一个方法,名字随便起
workerInit(){ this.worker = new Worker(); this.worker.postMessage(this.workerList); this.worker.onmessage = (params) => { ... } },
在data里创建一个变量,格式如下:
workerList:[ {name:'snapInterval',interval:10000}, {name:'intervalFunc',interval:40} ],
在某个钩子内调用worker方法
mounted(){ this.workerInit() }
以上,具有两个定时器的work就建立好了,在主线程内可以通过worker传回的name来判断来触发回调。
销毁worker也很简单,只需要在destory时钩子里写上
this.worker.terminate();
即可
总结
以上所述是小编给大家介绍的在Vue环境下利用worker运行interval计时器的步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]
- 海来阿木《西楼情歌》开盘母带[WAV+CUE][1.1G]
- TheGesualdoSix-QueenofHeartsLamentsandSongsofRegretforQueensTerrestrialandCele
- 王建杰2011-荣华富贵[喜玛拉雅][WAV+CUE]
- 孙悦2024-时光音乐会[金蜂][WAV+CUE]
- 秦宇子.2020-#YUZI【海蝶】【FLAC分轨】
- 苏有朋.1994-这般发生【华纳】【WAV+CUE】