我需要向我的 Web 应用程序添加一个“实时”元素。基本上,我需要检测存储在 SQL Server 表中的“更改”,并在发生更改时更新 UI 的各个部分。
我目前正在通过投票来做到这一点。我每 3 秒向服务器发送一个 ajax 请求,要求进行任何新更改 - 然后返回并处理这些更改。它有效,但我不喜欢它 - 这意味着对于每个浏览器,我将经常发出这些请求,而服务器将始终忙于处理它们。简而言之,它不能很好地扩展。
是否有任何巧妙的替代方法可以避免轮询开销?
编辑
为了完整起见,我正在更新它以提及我们最终采用的解决方案 - SignalR .它是操作系统,来自微软。它越来越受欢迎,我可以衷心推荐这个,或者我们也看过的 WebSync。
最佳答案
退房 WebSync ,为 ASP.NET/IIS 设计的 Comet 服务器。
特别是,我会做的是使用 SQL Dependency类,当您检测到更改时,请使用 RequestHandler.Publish("/channel", data);将信息发送给适当的收听客户。
应该工作得很好。
关于asp.net-mvc - 实时 ASP.NET MVC Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167821/