在Vue-Cli環境下利用worker運行interval計時器
npm install worker-loader --save-dev
configureWebpack:{ module: { rules: [ { test: /.worker.js$/, loader: "worker-loader", options: { inline: true, fallback: false, name: "[name]:[hash:8].js" } } ] }, }注意,worker-loader配置項一定要寫在js-loader的前邊,否則報錯。
/** * 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)) } }
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) }) };
import Worker from "./worker.js"
workerInit(){ this.worker = new Worker(); this.worker.postMessage(this.workerList); this.worker.onmessage = (params) => { ... } },
workerList:[ {name:"snapInterval",interval:10000}, {name:"intervalFunc",interval:40} ],
mounted(){ this.workerInit() }
this.worker.terminate();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106263.html
摘要:更方便的在于,由于自帶定時器功能,我們甚至不用自己去維護一個時間戳。請注意這里由于沒有調用另一個腳本,我們通過和的方式將我們的定時器程序傳入中。 問題 經常使用Javascript的同學一定對setInterval非常熟悉,當使用setInterval(callback, timer)時,每經過timer毫秒時間,系統都將調用一次callback。請問全局如果沒有提供setInterv...
摘要:當其就緒時,會調用執行定時函數。進程超時停止進程將要停止時,并不會立刻停止,而是會等待事件循環結束后停止,這時為了防止進程不退出,還設置了的延遲,超過就會停止該進程。當允許空閑時間小于時,統一每隔檢測空閑連接。 前言 swoole 的 timer 模塊功能有三個:用戶定時任務、剔除空閑連接、更新 server 時間。timer 模塊的底層有兩種,一種是基于 alarm 信號,一種是基于...
摘要:瀏覽器渲染進程瀏覽器內核進程,內部是多線程的默認每個頁面一個進程,互不影響。事件觸發線程歸屬于瀏覽器而不是引擎,用來控制事件循環可以理解成引擎自己都忙不過來,需要瀏覽器另開線程協助。 線程和進程 進程和線程的概念可以這樣理解: 進程是一個工廠,工廠有它的獨立資源--工廠之間相互獨立--線程是工廠中的工人,多個工人協作完成任務--工廠內有一個或多個工人--工人之間共享空間 工廠有多個工人...
閱讀 3689·2021-10-13 09:40
閱讀 3149·2021-10-09 09:53
閱讀 3551·2021-09-26 09:46
閱讀 1848·2021-09-08 09:36
閱讀 4248·2021-09-02 09:46
閱讀 1314·2019-08-30 15:54
閱讀 3179·2019-08-30 15:44
閱讀 1023·2019-08-30 11:06