Web Worker 简单使用

通信方法:

(1) 发送消息

主线程:worker.postMessage()

子线程:self.postMessage()

(2) 接收消息

主线程:worker.onmessage()

子线程:self.onmessage()

(3) 监听异常

主线程:worker.onerror()

子线程:self.onerror()

(4) 销毁方法

主线程:worker.terminate()

子线程:self.close()

(5) 加载脚本 (worker内部加载其他脚本)

importScripts('script1', 'script2')

javascript 复制代码
// 主进程
<template>
  <div class="menu-contain card">
    <el-button type="primary" @click="handlerSendMsg">Send</el-button>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';

const worker = ref()

worker.value = new Worker(new URL('@/workers/handlerArrWorker.ts', import.meta.url))

worker.value.onmessage = (res: any) => {
  console.log(res, 'res')
}

const handlerSendMsg = () => {
  worker.value.postMessage({msg: 'start'})

  console.log(worker.value, 'worker.value')
}
</script>

<style scoped lang="scss">

</style>
javascript 复制代码
// 子进程
self.onmessage = () => {
    let list = []
    for (let index = 0; index < 1000000; index++) {
        list.push(Date.now())
    }

    self.postMessage(list)
}
相关推荐
神奇的程序员14 分钟前
开发了一个nginx日志分析面板
前端
阿拉丁的梦25 分钟前
【C4D实用脚本】清除废点及删除了面的选择tag和材质tag及材质--AI编程
服务器·前端·材质
傅里叶27 分钟前
Flutter移动端获取相机内参
前端·flutter
哒哒哒52852031 分钟前
React useMemo 大白话用法文档(含注意项)
前端
xkxnq33 分钟前
第一阶段:Vue 基础入门(第 10 天)
前端·javascript·vue.js
智商偏低33 分钟前
abp PermissionDefinitionManager源码解析
开发语言·前端·javascript
RaidenLiu34 分钟前
Offstage / Visibility:不可见真的就不消耗性能吗
前端·flutter·性能优化
lgliuying35 分钟前
wangEditor5 富文本编辑器中使用 kityformula 公式编辑器的具体实践
前端·javascript·html
PBitW43 分钟前
Electron 脚本调用大坑!害惨我了
前端·electron
文心快码BaiduComate44 分钟前
我用文心快码开发了一款「积木工坊」:用AI让每个孩子都成为小小建筑师
前端·前端框架