1

今天我们看到一些网站在没有页面刷新的情况下将数据或通知传递给客户端。命名为实时或交互式应用程序。

一些已知的网站是:

  1. Stackoverflow:通知
  2. 自由职业者:以数字格式异步通过项目和专业计数
  3. Google Mail:统计用户的邮件内存使用总量。

等等……

我已经尝试并搜索了一些像SignalR这样的工具。基本上SignalR设计用于创建聊天应用程序。但是,在 Microsoft 技术中有没有任何扩展的直接方法来满足我们的目的?例如,假设我们想要一个像freelancer这样的简单计数器,除了使用像SignalR这样的扩展之外,我们没有其他办法吗?

4

3 回答 3

3

您可以查看一种称为轮询的技术(当不存在对其他方法的支持时,SignalR 会回退到该技术),基本上这个概念是x您每秒钟向服务器发送一个请求以检查更新(或多或少) ,例如(使用 jQuery):

setInterval(function() {
    $.get("/Messages/GetCount", function(data) {
        // do something with the data ...
    });
}, 30000);

每 30 秒检查一次消息计数 - 并相应地执行操作。是一篇关于轮询和长轮询的好文章(它提到了一个名为 Socket.IO 的 SignalR 替代方案)。

说了这么多,我真的会选择 SignalR,那些家伙测试了各种极端情况、性能等。

于 2013-08-25T07:13:09.030 回答
1

在客户端使用 Javascript 计时器定期异步请求更新信息。然后,此更新的信息可用于更新客户端,或可用于提示进一步请求以获取更多详细信息。

此解决方案适用于您不需要在服务器端有可用更新时立即接收更新(而是可以等待计时器间隔)的情况。它还可能会出现一些扩展问题,并可能导致浪费带宽和客户端/服务器时间,同时进行不必要的调用。

要克服其中任何一个问题,最好使用像 SignalR 这样的库(它可以做的不仅仅是聊天应用程序 - 查看这篇博客文章,了解与聊天无关的真实世界实现)。

于 2013-08-25T07:08:32.693 回答
0

使用 Microsoft 的 ASP.NET Ajax 实现或 JQuery:

微软 Ajax 概述

于 2013-08-25T07:03:03.733 回答