前言
前端有时候需要上传或者下载大量的数据,经常因为文件太大所以耗时较久,所以我们需要采取分段式下载或上传数据
大文件上传
方式一:大文件上传最简单的就是允许用户挂起上传,比如打开dialog点击上传,此时用户关闭dialog不想等的时候,可以根据用户的选择来把上传文件dialog变成小框在侧边栏挂起,提高用户体验。
方式二:获取到文件流按固定字节数分割为数组,数组里面需要放置map对象,序号+数据,此时我们遍历对象进行上传数据(异步上传多个,比一个更快),然后后端根据序号将其按照特定的位置还原数据。
大文件下载
同上,我们在提前得知数据条数时,可以按照1000/次来进行请求数据,可以使用await的方式来拼接数据,注意因为w3c的限制,所以浏览器无法在同一时间内多次重新请求同一接口,故需要sleep来间断。

// sleep export function timeout(ms) { return new Promise(resolve => setTimeout(resolve, ms)) }
浙公网安备 33010602011771号