在我的 AppStart.cshtml 中,我从数据库中获取一些数据、进行计算、序列化/反序列化 json 字符串等,然后通过执行以下操作将结果存储在几个 AppState 变量中:(C#)
AppState["myVar1"]="aString";
AppState["myVar2"]=anArray;
这些变量经常被访问并且定义起来有点繁重,所以我认为这样的事情是有意义的,而不是每次需要时都从头开始创建数据。即使不需要优化,它对我来说仍然有意义,因为它还通过在需要数据的一堆地方没有相同的代码来增加可读性和绝对可维护性。
同样,我通过在用户登录时将数据放入 Session 来针对每个用户执行类似的操作,例如
Session["userVar1"]="myString";
Session["userVar2"]=myAray;
但是,我刚刚读到,当我们想要读取它们时,我们永远不应该依赖存储在其中的数据仍然存在,因为它们存储在可能已被清除的服务器内存中。这是真的?所以当我们想要访问其中一个时,我们应该首先检查它是否为空?如果幸运的话,它不为空,我们可以立即使用它,否则我们再次设置它。这是应该如何使用存储在 AppState 和 Session 中的数据吗?如果是这样,如果它们为空,那么重新设置它们的好方法是什么?我想做一些事情,比如创建一个函数来设置它们是否为空?