最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟

 更新時(shí)間:2019年08月01日 09:14:27   作者:ycsx  
這篇文章主要介紹了在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

今天在code review時(shí),發(fā)現(xiàn)之前遺留的問題:

在一個(gè)視頻播放頁面,有一個(gè)40ms的interval一直在阻礙,導(dǎo)致視頻延時(shí)逐漸增大

于是寫了一個(gè)worker單獨(dú)把計(jì)時(shí)器拉出去跑了

實(shí)現(xiàn)步驟如下

由于用的是vue-cli,在webpack下要安裝worker-loader依賴才能單獨(dú)加載worker.js

npm install worker-loader --save-dev

更改 vue.config.js 文件的配置項(xiàng)

configureWebpack:{
  module: {
    rules: [
      {
        test: /\.worker\.js$/,
        loader: 'worker-loader',
        options: {
         inline: true,
         fallback: false,
         name: '[name]:[hash:8].js'
        }
      }
    ]
  },
}

注意,worker-loader配置項(xiàng)一定要寫在js-loader的前邊,否則報(bào)錯(cuò)。

下面寫封裝的方法,為了適配多計(jì)時(shí)器的情況,需要建一個(gè)class類

/**
 * worker類
 * export定時(shí)器方法
 * 
 */
export class workerTimer {
  constructor(){
     
  }
  timeInterval(name,interval,_this){
    console.log(name+'計(jì)時(shí)器已建立');  
    this[name] = setInterval(() => {
      _this.postMessage({name:name,message:interval/1000+'秒到了'})
    },Number(interval))
  }
}

然后用worker主方法調(diào)用這個(gè)類,e為組件內(nèi)傳入的計(jì)時(shí)器數(shù)組

import {workerTimer} from './workerTimer'
/**
 *通過遍歷器遍歷參數(shù)
 *new出新的worker類
 *調(diào)用定時(shí)器方法
 */
self.onmessage = function (e) {
  e.data.map((item) => {
   let workertimer = new workerTimer()
   workertimer.timeInterval(item.name,item.interval,self)
  })
};

在vue組件內(nèi)引入worker

import Worker from './worker.js'

在methods里寫一個(gè)方法,名字隨便起

workerInit(){
  this.worker = new Worker();
  this.worker.postMessage(this.workerList);
  this.worker.onmessage = (params) => {
    ...
  }
},

在data里創(chuàng)建一個(gè)變量,格式如下:

workerList:[
  {name:'snapInterval',interval:10000},
  {name:'intervalFunc',interval:40}
],

在某個(gè)鉤子內(nèi)調(diào)用worker方法

mounted(){
  this.workerInit()
}

以上,具有兩個(gè)定時(shí)器的work就建立好了,在主線程內(nèi)可以通過worker傳回的name來判斷來觸發(fā)回調(diào)。

銷毀worker也很簡(jiǎn)單,只需要在destory時(shí)鉤子里寫上

this.worker.terminate();

即可

總結(jié)

以上所述是小編給大家介紹的在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • vue2.0 使用element-ui里的upload組件實(shí)現(xiàn)圖片預(yù)覽效果方法

    vue2.0 使用element-ui里的upload組件實(shí)現(xiàn)圖片預(yù)覽效果方法

    今天小編就為大家分享一篇vue2.0 使用element-ui里的upload組件實(shí)現(xiàn)圖片預(yù)覽效果方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue?組件異步加載方式(按需加載)

    vue?組件異步加載方式(按需加載)

    這篇文章主要介紹了vue?組件異步加載方式(按需加載),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach()

    vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach()

    今天小編就為大家分享一篇vue.js 雙層嵌套for遍歷的方法詳解, 類似php foreach(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue elementui 動(dòng)態(tài)追加下拉框、輸入框功能

    vue elementui 動(dòng)態(tài)追加下拉框、輸入框功能

    這篇文章主要介紹了vue elementui 動(dòng)態(tài)追加下拉框、輸入框功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-04-04
  • vue清除瀏覽器全部cookie的問題及解決方法(絕對(duì)有效!)

    vue清除瀏覽器全部cookie的問題及解決方法(絕對(duì)有效!)

    最近項(xiàng)目要實(shí)現(xiàn)關(guān)閉瀏覽器清除用戶緩存的功能,下面這篇文章主要給大家介紹了關(guān)于vue清除瀏覽器全部cookie的問題及解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • vue+elementUI實(shí)現(xiàn)內(nèi)嵌table的方法示例

    vue+elementUI實(shí)現(xiàn)內(nèi)嵌table的方法示例

    本文主要介紹了vue+elementUI實(shí)現(xiàn)內(nèi)嵌table的方法示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined解決辦法

    vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined解決辦法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined的解決辦法,"AMap is not defined"是一個(gè)錯(cuò)誤提示,意思是在代碼中沒有找到定義的AMap,需要的朋友可以參考下
    2023-12-12
  • vue使用CSS插件scss時(shí)代碼報(bào)紅問題

    vue使用CSS插件scss時(shí)代碼報(bào)紅問題

    這篇文章主要介紹了vue使用CSS插件scss時(shí)代碼報(bào)紅問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue混入mixins分發(fā)組件可復(fù)用功能

    Vue混入mixins分發(fā)組件可復(fù)用功能

    混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能。一個(gè)混入對(duì)象可以包含任意組件選項(xiàng)。當(dāng)組件使用混入對(duì)象時(shí),所有混入對(duì)象的選項(xiàng)將被“混合”進(jìn)入該組件本身的選項(xiàng)
    2022-09-09
  • Vue父子組件之間事件通信示例解析

    Vue父子組件之間事件通信示例解析

    這篇文章主要介紹了React中父子組件通信詳解,在父組件中,為子組件添加屬性數(shù)據(jù),即可實(shí)現(xiàn)父組件向子組件通信,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2023-03-03

最新評(píng)論

商城县| 中江县| 承德县| 深州市| 昌宁县| 电白县| 金秀| 饶阳县| 曲水县| 潞城市| 淮滨县| 莎车县| 舞钢市| 黎川县| 尤溪县| 沙坪坝区| 准格尔旗| 浦县| 新乐市| 兰西县| 保山市| 彩票| 武邑县| 股票| 固镇县| 陕西省| 克东县| 双峰县| 刚察县| 安平县| 哈巴河县| 开鲁县| 青河县| 三江| 渭南市| 平远县| 合川市| 五原县| 五台县| 陵川县| 遂宁市|