【问题标题】:What is the best way to send progress information from WCF to the browser?将进度信息从 WCF 发送到浏览器的最佳方式是什么?
【发布时间】:2012-07-19 09:44:01
【问题描述】:

我有一个使用 Razor、html5 和 WCF 服务的 MVC 应用程序。问题是一项 WCF 服务需要很长时间才能运行,这意味着用户不知道该服务在做什么。我想向 HTML5 客户端发送进度信息,并想就最佳方法提出一些建议。我们将不胜感激地收到所有帮助……

【问题讨论】:

  • 您想发送真实的进度信息(如7.4% complete)因为这将是一个真正的挑战,或者只是一个在操作过程中旋转的动画 gif,告诉用户他的请求正在处理中时刻?
  • 一些文本信息对于我目前正在处理的应用程序来说已经足够了。但我有一些即将开展的项目可能需要完成百分比信息。

标签: asp.net-mvc wcf html


【解决方案1】:

您甚至可以将 SignalR 用于反向 Ajax。如果你想避开这些繁重的框架,并且可能想使用 setInterval,你可以查看 article 这篇文章是由 Dino Espito 撰写的,其中讨论了如何使用 setInterval 对服务器进行重复调用以获取进步。 Another one Dino Espito 使用 SignalR 库制作上下文相关的进度条

获取他关于上下文敏感进度条的文章的完整集合See here

【讨论】:

    【解决方案2】:

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

    有一些可用的开源代码可以帮助您简化工作,例如 nCometPokeIn

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多