前端大文件下载被送进了ICU!如何抢救? 头发最多的程序员 2024-08-01 101 阅读1分钟 问题: 最近遇到文件下载问题,使用公司其他同事封装的方法自测发现,下载大文件时页面交互无响应,浏览器直接挂掉。 问题分析: 浏览器是单线程,为防止多线程同时操作一个DOM出现冲突。同事代码采用分片下载,下载完后一次性写到XLSX,导致阻塞。 解决思路: 可以模仿React源码思想,使用requestIdleCallback在浏览器空闲时写入,但多线程Web Worker处理会更快。我们使用Web Worker解决。 上代码: