2

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

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

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

4

1 回答 1

1

您正在寻找的解决方案是使用 Server-Push 技术。

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

signalR 框架提供将数据推送到客户端,因此它更适合于类似 MVC 的应用程序,而不是用于在服务器端执行大部分数据绑定的 DevExpress 工具。关于 signalR 的信息可以在这里找到。

DevExpress 建议使用计时器(经过一定时间后的回发)解决方案。

一般而言,html 5 提供了WebSocket功能,这基本上是所有其他选项在部件上使用的功能。像上面这样的框架,建立在技术之上,但也通过使用计时器等提供漫游。

于 2013-07-08T14:13:48.520 回答