将进度信息从WCF发送到浏览器的最佳方法是什么?

时间:2012-07-19 09:44:01

标签: asp.net-mvc wcf html5

我有一个使用Razor,html5和WCF服务的MVC应用程序。问题是一个WCF服务需要很长时间才能运行,这意味着用户没有指示服务正在做什么。我想将进度信息发送给HTML5客户端,并希望了解最佳方法的一些建议。感谢所有帮助...

2 个答案:

答案 0 :(得分:2)

您甚至可以将SignalR用于反向Ajax目的。如果你想回避这些繁重的框架,并且可能想要使用setInterval,你可以查看这个article本文由Dino Espito撰写,其中讨论了如何使用setInterval对服务器进行重复调用得到进步。 Dino Espito的Another one,他使用SignalR libarary创建一个上下文敏感的进度条

完整收集他关于上下文敏感进度栏的文章See here

答案 1 :(得分:1)

您必须执行Comet。在Comet或Reverse Ajax的情况下,客户端将向服务器发送长持续时间的ajax调用并等待响应。因此,在您的情况下,首先HTML5客户端将向服务器发送请求并等待进度信息,一旦WCF服务返回一些信息,客户端必须再次进行长时间调用,直到该过程完成。

有些开源可以帮助您简化工作,例如nCometPokeIn

code project中还有一篇文章讨论了这种方法。