当前位置: 首页 > news >正文

Vue3+Ant-design-vue+SSE实现实时进度条

  1. 背景:上传完后 实时显示进度条 方便业务员知道当前上传的进度
  2. 实现方式:使用sse方式
  3. sse只支持get请求方式 不支持post请求
  4. 具体代码实现
  5. html 代码片段
<div class="progress-container"><a-progress v-if="uploadProgress.show" :percent="uploadProgress.percent" :status="uploadProgress.status" class="mt30" />
</div>// 添加进度状态const uploadProgress = ref({show: false,percent: 0,text: '等待上传...',status: 'active', // active | exception | success});使用sse需要写一个唯一id 我用的是当前时间 肯定是唯一的
taskId = `import_${Date.now()}_${Math.floor(Math.random() * 1000)}`;具体使用方法
const eventSource = new EventSource(url);
url就是后端提供接口 后面拼上/${taskId.value}
eventSource.addEventListener('progress', (event) => {const data = JSON.parse(event.data);console.log(`进度: ${data.progress}%`, data.message);uploadProgress.value.percent = data.progress;});eventSource.addEventListener('complete', (event) => {console.log('导入完成!');const data = JSON.parse(event.data);console.log('进度=' + event.progress + '%', data);uploadProgress.value.percent = data.progress;eventSource.close(); // 关闭连接});

7.其实也可以使用上传组件的进度事件 但是这个不是真正文件夹上传走的那个进度 所以我们这边采用了sse方式去实现

http://www.dtcms.com/a/344653.html

相关文章:

  • 前端快讯看这里
  • 基于导频的OFDM系统的信道估计(使用LS估计算法)
  • 突击复习清单(高频核心考点)
  • 【C++高阶六】哈希与哈希表
  • 线程池拒绝策略踩坑
  • uniappx与uniapp的区别
  • 【UniApp打包鸿蒙APP全流程】如何配置并添加UniApp API所需的鸿蒙系统权限
  • MySQL B+树索引使用
  • QT之QSS的使用方法和常用控件的样式设置
  • Qt 的事件类QEvent及其他子类事件的开发详解:从基础到实践的全方位指南
  • 高并发用户数峰值对系统架构设计有哪些影响?
  • Qt-窗口类部件
  • 极验demo(float)(一)
  • 数据结构:队列 二叉树
  • vivo“空间计算-机器人”生态落下关键一子
  • 码蹄杯进阶
  • 笔试——Day46
  • 基于SpringBoot+Vue框架的高校论坛系统 博客论坛系统 论坛小程序
  • 企业版Idea 无快捷键的启动方式
  • 和AI Agent一起读论文——A SURVEY OF S ELF EVOLVING A GENTS(五)
  • 如何监控和管理微服务之间的调用关系
  • 微信开发者工具:更改 AppID 失败
  • Unreal Engine Class System
  • 滑动窗口+子串+普通数组算法
  • Spring AI调用本地大模型实战
  • 【LINUX】CentOS7在VMware15中,从命令行界面切换到图形界面的异常汇总
  • Day10 Go语言深入学习(2)
  • 零成本 Redis 实战:用Amazon免费套餐练手 + 缓存优化
  • skywalking-agent与logback-spring.xml中的traceId自动关联的原理
  • 使用C#的 PdfDocument 实现 PDF 页眉页脚的编辑