【发布时间】:2020-04-26 05:55:55
【问题描述】:
在我的 web 应用程序中,用户可以选择下载包含一些数据的文件,他们可以通过单击按钮来完成。对于少量数据,文件几乎立即开始下载,并显示在浏览器的下载区域中。哪个好。
对于大量数据,服务器可能需要大量时间来计算数据,甚至在我们开始下载之前。这是不好的。我想指出计算正在进行中。但是我不想在我的 UI 上放置“忙碌”指示器,因为该操作不会阻塞 UI - 用户应该能够在准备文件时做其他事情。
从我的角度来看,一个好的解决方案是在我完成计算之前开始下载过程。我们总是知道(或可以快速计算)文件的前几百个字节。有没有一种机制可以让服务器用这几个字节响应下载请求,从而开始下载并使文件显示在下载区域中,并在我完成计算后提供文件的其余部分?我知道下载看起来会停止,这不是问题。
我可以非常快速地估算出文件大小。我宁愿不必使用第三方包来实现这一点,除非它是一个非常简单的包。我们正在使用 Angular,但如果需要,我们很乐意编写原始 JS。
【问题讨论】:
-
请提供有关您的服务器端代码、java、tomcat 的更多详细信息?还请提供有关下载如何为您工作的一些详细信息...您是否将文件存储在数据库中?
-
我们的服务器是 C#,但我正在寻找一个通用的解决方案。该文件未存储在数据库中。我们需要根据 API 参数创建它。
标签: javascript http