StreamSaver.js实现大文件下载
浏览器侧文件下载如果简单的blob对象,然后调用URL.createObjectURL(blob)方法,会直接下载文件。但是坏处是无法支持大文件下载。在不改变后端的基础上如何解决呢。streamSaver.js就是为了解决这个问题而诞生的。
原理
streamSaver.js利用serviceworker来实现请求拦截,而请求如果结果是stream则可以直接持续写入浏览器侧本地,这样就可以打破JS单线程限制,无法下载大文件及阻塞线程。
使用
1 | import streamSaver from 'streamsaver'; |