首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法在JavaScript中检测下载的开始?

有没有办法在JavaScript中检测下载的开始?
EN

Stack Overflow用户
提问于 2018-08-24 05:12:29
回答 2查看 0关注 0票数 0

在我们当前的项目中,我们提供PDF下载,可以由用户通过他提交的HTML表单进行自定义。动态生成PDF需要几秒钟,我想将其可视化,例如通过禁用提交按钮直到下载开始。不幸的是,我找不到一种方法来检测下载何时开始*。所以我不知道何时重新启用提交按钮。

我已经尝试将IFrame指定为HTML表单的目标,希望onload触发该事件。但是,它不是 - 可能是因为PDF使用“ Content-disposition: attachment”标头发送,并且实际上并未加载到IFrame中。

我现在能想到的唯一解决方案是将PDF生成到服务器上的临时文件,我想避免这种情况。

*)让我澄清一下:我不需要知道下载是否完成,或者即使它真的开始了。我想检测浏览器询问用户是打开还是保存文件的点。我猜这种情况发生在浏览器收到HTTP标头时。

EN

回答 2

Stack Overflow用户

发布于 2018-08-24 13:37:52

您想要的是能够检测下载文件的大小何时从0变为正值。据我所知,使用javascript无法做到这一点 - 你需要一个可以访问客户端文件系统的插件。

建议的解决方法:每次下载创建一个会话。让客户端轮询服务器有关下载状态的信息。这可能是“不存在”,“未开始”,“已开始”,“已完成”。您需要一些服务器端工作来持久化并更新下载状态和AJAX框架。

票数 0
EN

Stack Overflow用户

发布于 2018-08-24 14:46:25

最简单的解决方案是估计时间(慷慨)并以这种方式进行。这是一个黑客攻击,但它会产生预期的效果。另一个选项可能是使用Ajax提交带有回调的表单来提交表单并让生成器返回详细信息到调用页面。http://www.jquery.com/可能是开始这个​​选项的好地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档