首页 > 其他分享 >在vue项目中使用webWorker

在vue项目中使用webWorker

时间:2023-09-06 18:14:45浏览次数:45  
标签:预置 文件 vue 项目 worker webWorker new

使用web worker可以进行多线程的数据处理,  我们可以把包含大量数据的逻辑交给webworker, 能避免在数据处理过程中造成的页面卡顿.

1.首先, 你可以在项目根目录的任意目录下, 新建一个webworker的文件

直接调用预置方法postMessage来传递数据, 使用onmessage来监听和获取处理完毕后的数据

 

2. 之后是在对应vue文件中创建worker

 1   const worker = new Worker(new URL('./webWorker.ts', import.meta.url), {
 2     type: 'module',
 3   });
 4 
 5   worker.onmessage = (data: any) => {
 6     console.log('获取到处理的数据', data);
 7   };
 8 
 9   function sendMessage() {
10     worker.postMessage(['第一条', '第二条', '第三条']);
11   }

需要注意的是, 为了让worker文件放在vue项目下, 并且支持ts和ES, 需要用new URL预置方法来处理路径, 并将第二个参数的type设置为module.

否则, 必须把worker文件放在public中, 并且不支持import导入外部内容

 

另外, worker只能传递可序列化的数据, 复杂的数据可能需要通过JSON转换后才能传递

标签:预置,文件,vue,项目,worker,webWorker,new
From: https://www.cnblogs.com/wazosky/p/17683047.html

相关文章

  • vue传递给后端时间格式问题
    前端处理首先前端使用moment.js进行处理data.userEnrolDate=moment(data.userEnrolDate).format('YYYY-MM-DDHH:mm:ss');后端处理@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-ddHH:mm:ss")@DateTimeFormat(pattern="yyyy-MM-ddHH:mm:ss&quo......
  • 【VUE】倒计时计算
    <script>newVue({el:'#app',data:{openTime:'2023-09-0621:15:00',timer:"",定时器对象hours:"00",minut......
  • Vue + GitLab 实现自动化部署
      二、Linux安装nginx在Linux上安装NGINX的步骤如下:打开终端(命令行界面)。使用以下命令安装NGINX:对于Ubuntu/Debian系统:sudoapt-getinstallnginx对于CentOS/RHEL系统:sudoyuminstallnginx等待安装完成。使用以下命令启动NGI......
  • Vue/React对比学习
    组件传值//父组件exportdefaultfunctionTab(props:any){const[serverUrl,setServerUrl]=useState<string|undefined>('https://');console.log(props);//父组件接受子组件的值并修改constchangeMsg=(msg?:string)=>{setServerUrl......
  • 解锁项目管理神器——低代码开发平台
    项目目标执行风险是否可控,关乎一个项目乃至一个企业的发展,在项目实施过程中,项目经理承担了统筹、协调和把控项目各方面的重要职责,包括时间、成本、质量、安全和资源等多个要素。然而,在传统项目管理中,由于缺乏实时且全面的管理手段,项目经理很难快速了解整体和阶段性进展情况,这往往会......
  • Maven 安装与环境变量配置 及 springboot项目创建
    (1)Maven安装:在官网下载:http://maven.apache.org/download.cgi  (2)Maven配置环境变量:解压到一个路径,然后配置环境变量:新建变量名:MAVEN_HOME变量值:D:\apache-maven-3.6.0(这是我的MAVEN路径)编辑变量名:Path在最前面加上:%MAVEN_HOME%\bin新建系统变量--》......
  • vuejs3.0 从入门到精通——初始化项目——项目结构
    初始化项目——项目结构 项目结构是项目的整体展现,也是对不同文件和文件夹的业务模块的划分。随着业务需求的迭代,项目会不断地增加业务模块,建立业务模块文件,使项目结构清晰、方便管理,这是很重要的。这个目录结构是使用VueCLI创建的Vue.js项目,其中包含了一些常用的文件和......
  • dapp开发项目设计需求功能
      dapp项目的开发是结合了区块软件的技术,dapp的软件系统已经成为某个行业的赚钱焦点。dapp的项目基于去中心化的应用程序,让用户拥有一定的自主权和主动权,在交易时有一定的限制,具有很好的公平性,数据不受任何的机构限制。开发设计dapp项目,首先就是先考虑到软件的功能需求。 ......
  • vue3集成jsoneditor
    一、背景之前在做录制回放平台的时候,需要前端展示子调用信息,子调用是一个请求列表数组结构,jsoneditor对数组的默认展示结构是[0].[1].[2]..的方式,为了达到如下的效果,必须用到onNodeName的钩子函数,因此深入调研了下vue3如何集成jsoneditor最后做出来的效果图onNodeName的参考......
  • 记一次生产项目Kubesphere中NS加入Workspace,致使NS数据删除事故
    一、前言2023年7月23日在项目上线前夕,k8s生产环境出现故障,经过紧急修复之后,k8s环境恢复正常;另外我们环境引入了kubesphere云原生平台技术,为了方便研发人员对于k8s权限的细粒度管理,我方手动将kubernetesnamespace(生产环境业务命名空间)加入到kubesphere中的workspace(企业空间),就在此......