asp.net - Asp.Net 中的静态列表<User> VS 在线用户数据库?

标签 asp.net asp.net-mvc asp.net-membership

我正在构建 ASP.Net MVC 应用程序“有点游戏”,它与在线用户进行大量处理

我让 Ajax 请求每隔 “10s” 触发一些 Action,以在用户保持网站打开时保持用户在线。 此用户操作更新LastActivityDate -((在静态列表和数据库中))。


所以问题是:

  • 是否最好将在线用户存储在静态列表中,并在用户登录时编写一些代码将其添加到该列表中,然后每隔“10s”管理该列表 踢出离线用户。
  • 或者最好是加载在线用户 每当我需要OnlineUsers来自数据库


注意:我正在使用此 SO Question 中的技术定期执行一些任务,例如重新管理 OnlineUsers 静态列表。

最佳答案

首先,您不会使用 List<User>为此,而是 Dictionary<int,User> ,使用用户的id作为key,这样就可以立即找到要更新的用户。其次,我认为这可能是两者的混合。您保留当前用户的缓存副本,定期从数据库刷新,并将数据(如果需要,异步)保存到数据库。如果您发现在代码中的不同位置执行此类操作,您可能需要考虑为用户封装此行为的自定义持久性类。

关于asp.net - Asp.Net 中的静态列表<User> VS 在线用户数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134149/

相关文章:

c# - 在更新面板内的回发上保持可滚动的 gridview 位置

c# - 为什么我需要 Default.aspx.designer.cs 文件?

asp.net - ASP.NET Web API默认登录页面

asp.net - 包含和寻址 javascript 文件有什么不同

c# - 禁用 asp.net mvc 成员资格和角色表创建

c# - 在 ASP.NET MVC 中返回文件以查看/下载

c# - asp.net webforms vs mvc 哪个最适合业务应用程序

c# - 在成员(member)中启用密码重置

asp.net-membership - 成员资格超时和 session 超时

c# - 如何检查密码是否有效? ASP.NET MVC 成员资格