我正在使用asp.net mvc 3。
我实施类似于SO的积分系统。我想在每个页面上显示用户点数。我应该将它存储在会话变量中吗?
或者我可以在部分操作上使用outputcache在每个页面上显示它吗? 我不想在每个页面上为此做一个dbcall。
我对会话变量有点不情愿,我听到太多关于他们的混合评论
感谢
答案 0 :(得分:1)
我不会将它存储在会话中。
如果用户做了影响其积分的事情,则每次都必须更新会话。使用会话来处理用户在您网站上的时间很少变化的内容(例如用户名,偏好等)。
不要忘记,如果有人“赞成”了用户所做的事情 - 除非你打电话给db,你怎么知道呢?
我会使用常规Cache
,可能在包含用户代表的表上使用SqlCacheDependency
,因此当它更改时,它会使缓存的数据无效。