栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过jQuery.Ajax下载文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过jQuery.Ajax下载文件

这是我现在建议的一些注意事项:

  • 需要相对较新的浏览器
  • 如果预期文件 很大,则 您可能应该执行与原始方法(iframe和cookie)类似的操作,因为以下某些操作可能会消耗系统内存,至少与正在下载的文件和/或其他有趣的CPU一样大。副作用。

    fetch('https://jsonplaceholder.typipre.com/todos/1’)

    .then(resp => resp.blob())

    .then(blob => {

    const url = window.URL.createObjectURL(blob);const a = document.createElement('a');a.style.display = 'none';a.href = url;// the filename you wanta.download = 'todo-1.json';document.body.appendChild(a);a.click();window.URL.revokeObjectURL(url);alert('your file has downloaded!'); // or you know, something with better UX...

    })

    .catch(() => alert(‘oh no!’));

基于jQuery / iframe / cookie的原始方法

Bluish完全正确,您不能通过Ajax来实现,因为Javascript无法将文件直接保存到用户的计算机(出于安全考虑)。不幸的是,将
主窗口的 URL 指向文件下载意味着您​​几乎无法控制文件下载发生时的用户体验。

我创建了jQuery File Download,它允许通过OnSuccess和OnFailure回调完成文件下载,从而获得“类似于Ajax”的体验,从而提供更好的用户体验。看看我的博客文章,了解该插件解决的常见问题以及使用该插件的一些方法,以及实际使用的jQuery文件下载演示。

这是一个使用带有Promise的插件源的简单用例演示。

$.fileDownload('some/file.pdf')    .done(function () { alert('File download a success!'); })    .fail(function () { alert('File download failed!'); });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号