【发布时间】:2013-10-18 15:21:05
【问题描述】:
我有以下用例: 用户可以在我的 asp.net Web 项目中过滤一些数据,并以 PDF 格式请求结果。 PDF 根据新请求生成并返回给用户。我已经准备好了一切。
但是:处理过程最多可能需要两分钟,用户应该能够继续使用该页面。
我尝试使用第二个选项卡,但两个选项卡都被阻止了。即使我使用 PageAsyncTask 类和 async 属性。当我使用线程执行请求时,我是真正的并行,但我不知道在工作完成后如何从线程内部与用户交互。
我如何向服务器发送异步请求,并在页面完成后以任何形式获取结果?
【问题讨论】:
-
这是一个单页应用程序吗?我问是因为有什么东西可以阻止用户导航到另一个页面而没有意识到 PDF 将不再被传递?
-
在不了解您的应用的情况下,我想您可能想看看 SignalR。它促进了实时通信(在可能的情况下......它将诉诸对旧浏览器的轮询)。您可以在服务器上设置一个事件,指示 PDF 已准备就绪,并提醒客户端它已准备好下载。
-
我喜欢这个概念。但是我怎样才能进行异步调用呢?当我使用后台工作者时,我的页面变慢了。
-
BackgroundWorker 类主要用于 Windows 窗体。与 Web 同步意味着您的浏览器会打开一个页面,然后通过 AJAX 在后台与 Web 服务进行通信。