【发布时间】:2011-05-18 08:27:30
【问题描述】:
在阅读了 ASP.NET MVC 2 中的documentation on AsyncControllers 之后,我想知道在这种情况下实现 ajax 进度条的最佳方法是什么。本教程根本没有涵盖这一点,这似乎有点奇怪。
我猜想实现 AJAX 进度条需要额外的操作方法来返回当前任务的状态。但是,我不确定在工作线程和该操作方法之间交换有关任务状态的信息的最佳方式。
到目前为止,我最好的想法是将有关当前进度的信息与唯一 ID 一起放入 Session 字典中,并与客户端共享该 ID,以便它可以轮询状态。但也许还有一种我没有注意到的更简单的方法。
最好的方法是什么?
谢谢,
阿德里安
【问题讨论】:
-
这有点像问为什么您没有获得正常请求的进度条。当你这样想的时候应该回答自己。
-
@nick:不是真的。正常请求不会长时间运行。对于最多需要几秒钟的事情,没有人需要进度条。但是,如果您使用的是异步控制器,您预计请求会花费很长时间。这就是您需要进度条的时候。只有我觉得这很明显吗?
-
使用异步控制器意味着任务转移到其他地方-因此您将其设为异步并且可以允许其余代码继续执行-不需要任何长时间-运行任务。只是意味着您可以提高性能。通过网络请求 - 客户会注意到任何好处。你是唯一一个吗?这说明什么?你在期待什么?服务器不断发送多个响应,以便您获得一个进度条 - 这将抵消您的性能优势并添加非常愚蠢的行为。
标签: asp.net-mvc ajax asp.net-mvc-2 asynccontroller