我们有一个需要实时显示数据的ASP.NET web应用程序,我们目前正在使用AJAX和web服务,但这会导致性能问题,因为客户端的数量越来越大。每隔5-10秒就会将数据池化一次,当该值乘以1000+客户端时,可能会使数据检索变得相当慢。
发布于 2013-02-25 22:15:54
您可能希望尝试使用SignalR来处理实时数据需求。从该站点:
ASP.NET SignalR是一个面向ASP.NET开发人员的新库,它使得向应用程序添加实时web功能变得极其简单。什么是“实时网络”功能?它能够让您的服务器端代码实时地将内容推送到连接的客户端。
您可能听说过WebSockets,这是一种新的HTML5应用编程接口,支持浏览器和服务器之间的双向通信。当WebSockets可用时,SignalR将在幕后使用它,当它不可用时,它将优雅地后退到其他技术和技术,同时您的应用程序代码保持不变。
SignalR还提供了一个非常简单的高级应用程序接口,用于在您的ASP.NET应用程序中执行服务器到客户端RPC (从服务器端.NET代码调用客户端浏览器中的JavaScript函数),以及为连接管理添加有用的挂钩,例如连接/断开事件、连接分组、授权。
发布于 2013-02-25 22:22:20
尝试执行以下一项或多项操作:
缓存-您是否可以考虑将应用程序数据存储在内存中一段时间。这将减少对数据库服务器的影响。
HTML5服务器端事件-使用服务器端事件,当发生更改时,您可以实际通知客户端(推送数据而不是池化)。实际上,您需要一个ASP.NET事件处理程序(ashx页面)来在客户端推送请求和一些JS代码。
有关服务器端事件的更多详细信息和代码示例,请参阅this文章。
https://stackoverflow.com/questions/15068995
复制相似问题