我正在使用C#ASP.NET MVC 4 Razor
我在ASP.NET MVC Razor View中有一个显示用户记录的Grid。有没有办法在Grid中显示新用户,而不是在每1分钟后向服务器发送异步请求?
我在Google上搜索了很多。现在,最后我在这里发布查询以获得此解决方案的任何线索,以避免服务器上的流量。由于此页面至少可以看到20,000个用户
答案 0 :(得分:3)
您可以使用发布/订阅者模式。这可以使用例如redis服务器来完成。
在软件架构中,发布 - 订阅是一种消息传递模式 消息发送者,称为发布者,不编程 消息直接发送到特定的接收器,称为 订户。相反,已发布的消息被表征为 课程,不知道可能有什么用户(如果有的话)。 同样,订阅者表达对一个或多个类的兴趣,并且 只接收感兴趣的消息,而不知道什么, 如果有的话,那里有出版商。
请查看here。
这样做,客户端第一次从服务器请求数据时将订阅服务器以进行任何更新。一旦任何更新到达,服务器将更新推送到已订阅的客户端,而无需客户端向服务器发出任何其他请求。
关于实施细节,请查看here。
答案 1 :(得分:3)
@Christos方法是正确的!只是为ASP.NET解决方案添加更多关于它的信息我会使用SignalR,它允许你实现简单的服务器/客户端通信,它是跨浏览器(它有几个polyfill如果它不能使用Web套接字,它将使用服务器发送的事件,等等),最好的部分是你不必担心该实现。
一旦您的客户连接到signalR服务器,您就可以在每次需要向网格添加新项目时通知他们。
http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr
我希望它有所帮助!