vue2项目中使用webworker(一):发送网络请求

news/2024/10/3 21:18:04

背景

有的时候我们需要向后端发送多个网络请求,如果全部在主线程中操作的话页面会变得非常卡顿,我们可以使用webwoker来发送网络请求,一旦服务响应结果,我们再从子线程给主线程发送消息

步骤

默认情况下vue2是不支持webwoker。

  1. 安装worker-loader
npm i -D worker-loader
  1. vue.config.js配置
    配置loader来解析xx.worker.js后缀的文件
module.exports = defineConfig({configureWebpack: config => {config.module.rules.push({test: /\.worker.js$/,use: {loader: 'worker-loader',// 允许将内联的 web worker 作为 BLOBoptions: { inline: 'no-fallback' }},})},parallel: false, // 打包报错的配置
})
  1. 创建worker来发送网络请求
    src下创建 worker/list.worker.js
import axios from "axios";
self.onmessage = (e) => {axios.get('http://127.0.0.1:3000/public/test.jpg').then(res => {self.postMessage(res.data)})}
  1. vue组件
<template><div class="app"><button @click="sendMessage">发送消息</button></div>
</template><script>
import listWorker from './worker/list.worker'
export default {created() {// 引入子线程运行的js文件,然后创建worker示例const worker = new listWorker()this.worker = workerthis.worker.addEventListener('message', (e) => {console.log('主线程监听到子线程发送的消息事件', e.data)})},methods: {sendMessage() {this.worker.postMessage(123)},},
}
</script><style lang="less" scoped></style>

效果

参考文档

https://juejin.cn/post/6979487181739917343#heading-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/55170.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

nginx出现403错误的解决方法

nginx出现403错误的解决方法 2024/08/31 17:06:52 [error] 26005#26005: *11 "/root//frontend/dist/index.html" is forbidden (13: Permission denied), client: 220.196.160.53, server: 81.70.112.191, request: "GET / HTTP/1.1", host: "81.70…

机组复习

1.数字计算机如何分类?分类的依据是什么?①按存储量大小分类:分为巨型、大型、中型、小型机和微型机。②从传输方式和操作方式分类:分为串行机和并行机。③按电路组成分类:分为电子管、晶体管、集成电路、大规模集成电路。④按用途分类:分为通用计算机、数据处理机和控制…

搭建博客

Hexo+Git 安装Hexo hexo文档 1.先行条件 安装以下应用程序Node.js Git检验是否安装成功 win+r输入cmd进入终端出现版本号即安装成功 2.镜像安装Hexo 进入npm镜像站 在终端输入 npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install -g hexo-cli 效果如…

ffmpeg合并视频

安装ffmpeg命令工具: 1.下载ffmpeg工具 【官网】 2.如果需要下载 7-zip解压该文件【官网】 3.解压后重名解压文件夹为ffmpeg 4.复制ffmpeg文件夹到 "C:\Program Files" 5.添加系统环境变量 “C:\Program Files\ffmpeg\bin” 6.可以通过 ffmpeg 查看7. 对于需要合并的…

ABC369

A link判断\(A\),\(B\)之间可不可以放一个数,如果可以就是\(3\)个,不行就是\(2\)个(左右),但是如果\(A\),\(B\)相等就只有一个。点击查看代码 #include<bits/stdc++.h>using namespace std;signed main(){int a,b;cin >> a >> b;int x = b-a;if(x != …

对最长路(和最短路)的一些思考

为了使得整篇文章显得更加人性化,咱们首先说一下最短路。 声明:不是讲解知识点不是讲解知识点不是讲解知识点不是讲解知识点不是讲解知识点,整篇文章建立在默认已经会的基础之上,然后提出一些个人见解。 最短路 此时的 SPFA 显得不再重要了(,咱们进入正题,说一下 dijkst…

闲话 831

非常厉害治程宝典看不下去了😭 被分析卡脖子了 还是来看看合订本吧家人们 初 见 端 倪灵 光 一 闪渐 入 佳 境炉 火 纯 青登 峰 造 极羽 化 成 仙完 全 胜 利YJX AK IOI

LTSPICE include导入模型

以mos为例: 1、include lib 命令输入.include,放入原理图后右键,导入模型2,首先加入一个mos按住ctrl,右键mos spicemodel输入型号,prefix输入X,Value可不填。 设置好之后就可以开始仿真了。