如何知道下载已完成?

13

有没有一种方法可以判断下载是否已经完成?也就是说,我们允许用户下载PDF格式的报告。从点击到下载结束需要大约3-5秒时间,在此期间,显示等待状态图标,以便用户不会多次点击。

谢谢! Eric


+1 我不相信这是可能的,但我对提供的答案很感兴趣! - Josh Stodola
4个回答

2

好的,这是我们所做的。

当用户点击链接下载PDF时,我们会显示等待状态的图标,并向应用服务器发出异步请求以开始构建PDF。该过程结束后,将返回PDF的URL。在此之后,我们将删除等待状态的图像,并将 location.href = url。我认为这是最好的解决方案。

感谢大家提供的想法/建议/代码!


1
你可以在链接被点击后禁用它5秒钟,并显示一个隐藏的等待图标。

是的,我想我会这样做,但在我看来,这是最不优雅的方法之一。 - user290043

1

这是一个非常棘手的问题。如果您正在使用脚本发送PDF文件,您可以在某个地方设置一个标志来指示脚本已完成发送数据。但这只意味着脚本已经完成了。这并不意味着字节已经被发送到任何地方。它们可能会被卡在Web服务器的出站队列中,等待空闲插槽实际上被发送到网络上。

我见过的最好的解决方案是弹出一个新窗口开始下载,并在其中放置通常的“请稍候,我在思考…”动画/文本。为了防止用户多次点击原始下载按钮(并弹出多个下载窗口),您可以添加一些JavaScript来在短时间内禁用该按钮。


谢谢您提供这些信息。我相信您是正确的,它是不可能的。 - user290043

0

1
是的,但是下载完成后我该如何把它放回去呢?或者,即使下载已经开始,我也可以把按钮放回去吗? - user290043
使用计时器?setTimeout(greyOutButton(button), 1250); - Kevin Friedheim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接