文件下载实现插件jquery.fileDownload

现有下载实现弊端分析

通常文件下载有三种方式,a标签下载,form 表单下载,blob转换url下载,iframe src下载,但上述几种下载存在如下弊端:

  • a标签download下载
    无法catch error
  • form表单下载
    对于多文件下载,循环下载表单提交,会导致只有最后一个能提交,其他请求被cacel。因为form 表单提交需要时间处理表单数据
  • blob转换下载
    会先缓存文件(不同浏览器的blob缓存大小不同,超过memory 缓存大小后,会直接缓存到disk, 具体可以参考chrome blob设计文档),对于大文件下载非常不友好,容易让用户误以为下载没有反应。
  • iframe src 下载
    firefox请求会被阻塞,原因尚未可知

解决方案

jquery.fileDownload.js Library 将会帮你解决以上困扰,使用也是非常简单:

$.fileDownload(url,options).done(res=>{}).fail(err=>{});

文中弊端仅仅在chrome和firefox 下测试得出,如有错漏,欢迎大家指正指出~

参考

  • JS实现文件下载的三种方式—a标签下载、form表单下载、blob转换url下载
  • jQuery File Download Plugin for Ajax like, feature rich file downloads
  • GitHub jquery.fileDownload
  • jQuery filedownload demo
  • 关于前端实现文件下载功能
  • Is there any limitation on JavaScript Max Blob size
  • Download big files

你可能感兴趣的:(文件下载实现插件jquery.fileDownload)