美文网首页
vite+vue3使用webworker

vite+vue3使用webworker

作者: 菜蚴菜 | 来源:发表于2022-12-05 11:36 被阅读0次
1、具体的worker文件
//search.worker.js
/** 监听主线程发送的消息*/
self.onmessage = (messageEvent) => {
   ...
   ...
  //把处理后的结果返回
  this.postMessage(**);
};
2、包装worker相应的逻辑
//search.js
import workerCode from './search.worker.js?raw';//?raw是为了标识以文件的方式import,而不是以内容
const blob = new Blob([workerCode], { type: 'application/javascript' });
const workUrl = window.URL.createObjectURL(blob);
let worker = null;
export const searchFn = (options) => {
  return new Promise((resolve, reject) => {
    worker = new Worker(workUrl);
    // 通过通道传数据
    worker.postMessage(JSON.stringify(options));
    worker.onmessage = (e) => {
      // 获取到的搜索结果
      let _data = e.data && JSON.parse(e.data);
      resolve(_data);
    };
  });
};
3、在vue文件中使用时
//index.vue
import { searchFn } from './search.js';
searchFn(**).then(res=>{
  //获取到的结果
  }
).catch(err=>{
  }
)
4、扩展

①、关于window.URL.createObjectURL,可以参考文章

相关文章

  • vue项目中使用webWorker 时报错:Uncaught S

    在vue项目中使用webWorker 时报错:Uncaught SyntaxError: Unexpected t...

  • Vite中使用WebWorker

    准备给我的一个 Vite 项目进行重构,其中一个功能(函数)要花费 JS 主线程大量时间,会导致主线程画面卡死,无...

  • vue使用scss

    vite+vue3全局引入scss变量

  • Javascript 基础夯实 —— 使用 webWorker

    当我们开始学习 javascript 的时候,我们就知道 js 其实是单线程的,所以当我们在浏览器中运行某些耗时算...

  • webworker

  • webworker

    BetterWorker 前言:JavaScript是单线程语言,一些复杂的运算不适合在主线程进行,否则可能导致主...

  • webWorker

    本篇文章仅供我自己学习使用,不建议从这篇文章中学习。因为文章中可能有错误。 传统的js都是单线程,webworke...

  • WebWorker

    浏览器执行环境是单线程的,一旦出现【主线程】耗时操作,就会造成浏览器卡死,用户点击没响应等情况。 Web Work...

  • webworker使用介绍,js中开启多线程

    【Webworker】 注:必须要在服务器环境。 什么是webworker?Web Worker为Web应用程序提...

  • 2018-03-15

    webNotification webWorker webServerSentEvent 01 webnotifi...

网友评论

      本文标题:vite+vue3使用webworker

      本文链接:https://www.haomeiwen.com/subject/ocabfdtx.html