0

我有一个 ASP.NET 页面,其中发出请求,一段时间后服务器返回新页面或只是文件以供下载。我想在屏幕上指出服务器正在“处理中...”,而返回数据需要一些时间。

当用户点击提交时调用 javascript 很容易。此外,在 Postback 上重新加载页面会导致任何“处理中...”指示符(一些 DIV 在页面顶部弹出)消失。

我的问题主要是服务器返回的数据不是页面而是要存储的文件的情况。如何捕捉服务器开始返回数据并运行 javascript/remove "Processing" DIV 的时刻?如果回复不同的哑剧类型,它甚至是一种方法吗?在哪些情况下甚至是可能的?

4

1 回答 1

1

有几种方法可以近似您尝试使用计时器和假设发生的事情,但要真正做到您所描述的,您需要轮询服务器以获取下载发生的指示。

我要做的是获取文件, Response.WriteFile 它,然后将标志写入某个存储,无论是数据库还是文件系统,或其他任何唯一标识事务已完成的存储。在客户端,您的脚本正在轮询服务器,而在服务器上,轮询响应正在检查存储中是否存在指示下载已发生的标志。

这里的关键是您必须更好地控制下载过程本身......仅仅重定向到文件不会给您所需的控制。如果您需要有关如何完成任何这些步骤的更多细节,请告诉我。

于 2012-07-18T15:37:12.373 回答