axios-multi-down 如果前端请求有 1G~🐶

查看 43|回复 1
作者:lqzhgood   
axios-multi-down
Axios 插件,通过 Range 特性, 将 大文件 分割,并发多个 Axios 请求加快大文件下载速度。
起因
最近在面试,聊到个人项目 Shmily (https:///t/944851), 这个项目是将 QQ 、微信、短信等各种数据汇总并时间线展示的一个项目,其中子项目 Shmily-Show 一个难点就是纯前端处理大量的聊天记录(总计 1.41G ,最大单文件 240M )。
面试官基于此引申出一个问题:如果前端单一请求大小有 1G,,可以和后端采取哪些方案加速? Shmily 是一个本地的 Web 应用,所以并不存在这个传输问题。生产中这是一个不合理的需求,应该从为什么有 1G 的角度去考虑。面试官也一再强调这只是假设情况,但不妨碍这是一个有趣的问题,就像刮刮乐还没刮开,就已经在想 500 万怎么花。 more...
其中一个措施是分块传输,然后就写了这个库 axios-multi-down
Demo
感觉也没啥说的,直接上 Demo 吧,Demo 的呈现想法来自于 FlashGet-网际快车
https://lqzhgood.github.io/axios-multi-down
优点
  • 自动探测服务器是否支持分块,不支持自动回退单一请求
  • 支持控制并发数量
  • 支持 Block 下载失败自动重试
  • ERROR_MODE.WAIT 模式支持全部下载完成后等待,可以手动对失败 Block 重试和操作,等待直到全部成功后返回

    有啥用
    好像没啥用,大文件去用 迅雷、Aria2 等更专业~
    如果是需要请求 1 个 G 的 Api ,先让 PM 祭天吧~
    就当锻炼锻炼各种条件下的 Promise 使用,面试考这个真是超级多呀~ 🐶
    是不是还能骗个 star? 听说对找工作有用啊! Github

    请求, 分块, align, Code

  • subframe75361   
    单纯好奇,不用 await 的原因是?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部