如何将服务器更新发送到浏览器?

时间:2013-06-13 08:09:12

标签: c#-4.0 devexpress asp.net-4.0 html4

我有一个我需要解决的简单问题。解决方案可能不那么简单,但是...... 我在example.com上有一个Web应用程序,多个用户同时使用它。在某些时刻,其中10个用户都在查看列出大约200多个国家/地区的国家/地区页面。此页面将列表分为20个国家/地区的部分,某些用户可能会对此进行过滤。仅显示以字母N开头的所有国家/地区 然后一个用户决定将荷兰重命名为荷兰,我希望所有其他用户立即看到这种变化。

在所有这些用户中,有些人可能一直在关注不同的国家/地区。荷兰不可见,因此不应更新。一个用户可能会查看以N开头的所有国家,因此他需要看到荷兰消失。人们可能会看到前20个国家,荷兰位于第50位,荷兰位于第32位,所以他没有看到其中任何一个,所以没有更新。一个用户查看以H开头的所有国家/地区,他需要获得更新,因为添加了荷兰语。最后,一位用户查看使用欧元作为货币的所有国家,他应该看到荷兰转变为荷兰的更新 基本上,只需要根据单个用户的操作进行大量更新。考虑到我可能拥有多达2.000个用户而且Countries表非常受欢迎,我必须小心性能。

那么,最好的方法是什么? 由于我使用的是DevExpress ASP.NET组件,因此在这些组件中可能会有一些非常有用的东西。不幸的是,我仍然是这些组件的新用户。

1 个答案:

答案 0 :(得分:1)

您正在寻找的解决方案依赖于服务器推送技术。

.Net框架提供了通过WCF回调进行双向通信的解决方案。更多信息here

signalR框架向客户端提供推送数据,因此对于类似MVC的应用程序更好,而不是那些在ServerSide上进行大部分数据绑定的DevExpress工具。有关signalR的信息可以找到here

DevExpress使用计时器提取解决方案(经过一段时间后发布PostBack)。

总的来说,html 5提供了WebSocket功能,这实际上是所有其他选项在部件上使用的功能。像上面这样的框架,建立在技术的基础上,但也通过使用计时器等来提供遍历。