使用输出缓存或会话变量

问题描述:

即时通讯使用asp.net mvc 3.使用输出缓存或会话变量

即时通讯实现类似于SO的积分系统。我想在每个页面上显示用户点数。我应该将它存储在会话变量中吗?

或者我可以在部分操作上使用outputcache在每个页面上显示它吗? 我不想在每个页面上为此创建一个dbcall。

IM有点reluctan与会话变量,我听到太多的混合评论对他们

感谢

我不会存储在会话。

如果用户做了某件事会影响他们的积分,那么每次都必须更新会话。使用会话处理用户在网站上很少更改的内容(如用户名,首选项等)。

不要忘记,如果某人“上传”了某些用户所做的事情 - 如果不调用db,您会如何知道这一点?

我会在包含用户代表的表上使用常规的Cache,可能还有SqlCacheDependency,所以当它更改时会使缓存的数据无效。

+1

+1正在写同样的东西 – 2011-02-04 10:05:16