c#-4.0 - 如何向浏览器发送服务器更新?

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

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

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

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

最佳答案

您正在寻找的解决方案与服务器推送技术有关。

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

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

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

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

关于c#-4.0 - 如何向浏览器发送服务器更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082200/

相关文章:

c# - Linq 方法不可用于实现 IEnumerable 的集合

c# - 应用程序很少在 Debug模式下完成加载,但 "run without debug"加载正常

c# - 加密 web.config

asp.net - 检测浏览器刷新

c# - 好的类设计实例

c# - 在 ABC 类中有一个集合<ABC> 可以吗?这是好的做法吗?

c# - DevExpress 将 GridView 导出到 Excel

c# - 如何停止 Page.DataBind() 的递归调用?

c# - 基于字符串列表返回对象的模式?

c# - 在 C# 控制台应用程序中检查的 Delphi 应用程序中打开的互斥量