c# - 缓存时间描述的最佳方式

标签 c# asp.net caching time

缓存以下内容的最佳方法是什么?我正在创建一个 Intranet Web 应用程序模板,它将在我的母版页标题顶部附近显示消息,例如 Good Morning, Justin Satyr!。显然,我必须确定是显示MorningAfternoon 还是Evening。为清楚起见,我的代码如下:

string partOfDay;
var hours = DateTime.Now.Hour;
if (hours > 16)
{
    partOfDay = "evening";
}
else if (hours > 11)
{
    partOfDay = "afternoon";
}
else
{
    partOfDay = "morning";
}

我不想在每次加载页面时重新确定它,因为这看起来有点多余,而且我必须轮询 SQL 服务器以检索用户的全名。缓存此信息的最佳方法是什么?如果我在整个 session 期间缓存它,那么如果用户在上午 11:00 开始使用该应用程序并在下午 3:00 结束,它仍然会说早上好

最好的办法是重新确定每个页面加载的 M/A/E 词并缓存 session 的人的全名吗?或者有更好的方法吗?

最佳答案

我只会将用户名保留在 Session 对象中,老实说,其余的不值得缓存和检查它是否过时等,只需在每个页面上重新运行它——前提是你将实现放入一个通用的库/类,这样您就可以保持代码干爽。

关于c# - 缓存时间描述的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491179/

相关文章:

c# - Process.WorkingSet64 和 Process.PeakWorkingSet64 的区别

c# - 如何旋转 ashx 处理程序检索到的图像

asp.net - 我应该在 web.config 的哪一部分插入 elmah 标签?

django - 为什么 drf-extensions CacheResponseMixin 不缓存?

Java缓存对象到磁盘

c# - 如何通过索引从 C# 中的 OrderedDictionary 获取键?

c# - 在 Xamarin.Forms 应用程序中更改顶部和底部栏(ControlsBar、StatusBar)的颜色

c# - 我需要在 Visual C# 或更好的建议中创建一个输入对话框?

asp.net - ASPxGridView - 如何获取主从 GridView 的详细信息网格中的选定行?

asp.net-mvc - 如何在ASP.NET应用程序中设置S-MaxAge CacheControl值?