小体积附件下载正常,大附件下载异常

1、问题出现情况

前后端代码正常,小体积的附件可以正常下载,但是大体积附件下载前端会报"net::ERR_FAILED",后端会报"Connection reset by peer"(报错信息基于前端框架是vue,后端框架是java)

2、临时解决方案

临时关闭浏览器的省内存模式

3、问题出现原因

前端代码里使用用 axios({ responseType: "blob" }) 发请求,响应体不是边下边写文件,而是整段累积在页面的渲染进程内存里; 收完之后才 new Blob(res.data) + URL.createObjectURL 触发保存,然后Chrome 的「内存节省程序」做的事就是在内存压力下冻结 / 丢弃不活跃标签、回收渲染进程内存。它不是只按"闲置几分钟"触发,而是响应式的:系统一报内存压力就会动手,所以浏览器会把请求给终止

4、解决方案

(1)原生下载:浏览器直接落盘,不由页面持有内容,省内存模式、标签回收都不影响。代价是 <a href> 带不了请求头,token放不进去,做不了校验

(2)流式下载:用 StreamSaver / File System Access API 边下边写盘,但都需要 HTTPS 或较新内核,如果网站不是用HTTPS或者用户浏览器是IE等旧浏览器内核,可能不兼容

(3)兜底提示:下载前根据文件大小判断,超过阈值(比如 50 MB)提示"如遇下载失败,请关闭浏览器的内存节省/睡眠标签页",成本最低但治标

相关推荐
变与不变8062 小时前
jQuery怎么使用
前端·javascript
paopaokaka_luck2 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
仰望.2 小时前
vue 表格组件 vxe-table 树表格懒加载支持拖拽排序的详细用法
前端·javascript·vue.js·vxe-table
程序员初一4 小时前
我把跑了两年 WordPress 的机器重装了一遍,顺便把面板卸了
javascript
kyriewen4 小时前
别再用防抖做懒加载了:120 张图只加载出 4 张
前端·javascript·程序员
CodeMi6 小时前
2026 CSS 接管了这些 JS 的活:6 个 Baseline 特性的落地取舍
javascript·css
全栈项目管理程序猿6 小时前
ArcGIS JS 基础教程(35):体元系列 - VoxelLayer 时间维度动画
前端·javascript
小poop9 小时前
从“雷峰塔”到“对象”:JavaScript基础语法入门指南
前端·javascript
chunyublog9 小时前
HDFS 上传文件名空格问题排障教程
前端·javascript·npm