首页 >web前端 >js教程 >如何使用 JavaScript 在浏览器中检测文件下载何时完成?

如何使用 JavaScript 在浏览器中检测文件下载何时完成?

Susan Sarandon
Susan Sarandon原创
2024-12-19 11:50:11307浏览

How Can I Detect When a File Download is Complete in a Browser Using JavaScript?

在浏览器中确定文件下载完成

在此查询中,用户请求一个解决方案来确定文件下载何时在浏览器中完成。这些知识使他们能够删除文件生成时显示的“等待”指示器。

最初的方法涉及使用 POST 请求向服务器提交隐藏表单并针对结果的隐藏 iframe。但是,在文件中设置“Content-Disposition:附件”标头(通常会提示浏览器显示“保存”对话框)不会在 iframe 中触发所需的“加载”事件。

或者,使用多部分响应通过发送空 HTML 文件和可下载文件来部分解决了 Firefox 中的问题。但由于浏览器不一致,在 Internet Explorer 和 Safari 中失败。

客户端 JavaScript 解决方案

更可靠的解决方案在于在客户端使用 JavaScript:

  1. 生成一个唯一的令牌并将其与下载请求一起提交。
  2. 显示“等待”指示器。
  3. 轮询服务器是否存在包含令牌的 cookie。
  4. 找到 cookie 后,隐藏“等待”指示器。

服务器端实现

服务器将检查唯一令牌的请求如果存在,则删除相应的 cookie。

示例代码

JavaScript(客户端):

[提供 JavaScript 代码]

PHP(服务器端):

[PHP 代码提供]

此方法有效地防止多次提交尝试,并确保仅在下载开始时删除“等待”指示器。

以上是如何使用 JavaScript 在浏览器中检测文件下载何时完成?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn