2013-06-13 78 views
2

我有一个简单的问题,我需要解决。解决方案可能并不那么简单,但...
我在example.com有一个web应用程序,并且多个用户同时使用它。在某些时候,其中的10个用户都在查看列出大约200多个国家/地区的国家/地区页面。该页面将这些列表划分为20个国家的一些部分,并且一些用户可能具有对例如仅显示以字母N开头的所有国家。
然后,一个用户决定将荷兰重命名为荷兰,并且我希望所有其他用户立即看到此变更(几乎)。如何发送服务器更新到浏览器?

在所有这些用户中,有些用户可能一直在寻找不同的一组国家。荷兰不可见,所以不应该更新。一个用户可能会看到以N开头的所有国家,所以他需要看到荷兰消失。有人可能会考虑前20个国家,荷兰是50号,荷兰是32号,所以他没有看到任何一个,所以没有更新。一位用户查看所有以H开头的国家,并且自从添加荷兰后他需要更新。最后,一位用户看到所有使用欧元作为货币的国家,他应该看到荷兰变成荷兰的更新。
基本上,只是基于单个用户的行为的很多更新。考虑到我可能有多达2,000个用户和国家表非常受欢迎,我必须小心性能。

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

+1

您可以尝试其中的许多服务器推送技术之一。有关WCF回调的信息,请参阅http://www.dotnetcurry.com/ShowArticle.aspx?ID=721。 SignalR也是一种可能性,尽管devexpress完全是关于服务器端数据绑定的,我不知道是否存在解决方法。也看看这个建议(我不会那样做是因为性能问题):http://www.devexpress.com/Support/Center/Question/Details/Q234425 –

+0

如果你改变你的评论为答案,我会接受! –

回答

1

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

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

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

DevExpress通过定时器获取解决方案(经过一定时间后的PostBacks)。

在一般说明中,html 5提供了WebSocket功能,这基本上是所有其他选项在零件上使用的功能。类似上述的框架,建立在技术的基础上,但也提供了使用定时器等的步行。

相关问题