下载准备就绪时播放声音

时间:2015-03-20 05:29:15

标签: audio

用户选择一些选项,然后点击"下载"。此时,我的php脚本开始准备文件,在文件准备好并开始下载之前可能需要5-10分钟。我想通知用户下载已开始的声音。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

根据这个问题:

Is there a way to detect the start of a download in JavaScript?

没有以编程方式检测下载何时开始。这个问题现在已经六年了,所以也许它已经过时了,但我找不到任何更新的信息来反驳它。

另一种方法是将下载过程分为两部分,以便您可以控制实际数据传输何时开始:

  1. 不要立即启动下载,而是让按钮向服务器发送一个AJAX请求,要求它准备下载文件。
  2. 服务器不应立即回复AJAX,而应准备文件并将其保存在具有唯一生成名称/ ID的临时文件存储区域中。
  3. 文件准备好后,服务器应该使用文件的名称/ ID回复AJAX。
  4. 在客户端上,AJAX完成回调可以播放声音,因为它知道下载即将开始。
  5. 然后使用window.open()从服务器请求文件。
  6. 现在,服务器可以像以前一样使用相应的标头进行响应。
  7. 最后,服务器可以从临时存储中删除该文件(或者只是等待cron作业执行此操作。)