3

我们有一个 ASP.NET Web 应用程序,它需要实时或最佳地显示数据,我们目前正在使用 AJAX 和 Web 服务,但这会导致性能问题,因为客户端的数量越来越大。每 5-10 秒收集一次数据,当这乘以 1000 多个客户端时,它会使数据检索变得非常缓慢。

4

2 回答 2

7

您可能想尝试使用SignalR来处理您的实时数据需求。从网站:

ASP.NET SignalR 是一个面向 ASP.NET 开发人员的新库,它可以非常简单地将实时 Web 功能添加到您的应用程序中。什么是“实时网络”功能?它是让您的服务器端代码实时将内容推送到连接的客户端的能力。

您可能听说过 WebSockets,这是一种新的 HTML5 API,可以在浏览器和服务器之间实现双向通信。SignalR 将在 WebSockets 可用时在后台使用它,并在它不可用时优雅地回退到其他技术和技术,而您的应用程序代码保持不变。

SignalR 还提供了一个非常简单的高级 API,用于在 ASP.NET 应用程序中执行服务器到客户端 RPC(从服务器端 .NET 代码调用客户端浏览器中的 JavaScript 函数),以及为连接管理添加有用的钩子,例如连接/断开事件、分组连接、授权。

于 2013-02-25T14:15:53.813 回答
1

尝试以下一项或多项:

缓存——您是否可以考虑将您的应用程序数据存储在内存中一段时间​​。这将减少对数据库服务器的影响。

HTML 5 服务器端事件——使用服务器端事件,您实际上可以在发生更改时通知客户端(推送数据而不是池)。您基本上需要一个 ASP.NET 事件处理程序(ashx 页面)来在客户端推送请求和一些 JS 代码。

查看这篇文章以获取有关服务器端事件的更多详细信息和代码示例。

于 2013-02-25T14:22:20.280 回答