有人告诉我,由于服务器过载,在编码时总是忽略使用会话。。
因此,我使用静态模型类在多个请求之间保持值。。。!!!
那么是否有静态模型更可取???
会话值是每个用户的。静态值按应用程序而定。
如果没有重构代码,它们是不可变的,所以要小心正确使用它们。
就成本而言,您必须记住评估内存成本和CPU成本。如果保持在会话变量中,则两者都会随着web应用程序的并发用户数量的增加而增加,此外,在静态或会话方法中,两者都取决于对象的复杂性。
如果每个用户会话中的对象都相同,则将它们移动到静态变量(应用程序缓存)中。如果每个用户的视图中的对象不同,则使用会话。
最好的解决方案很少是纯的,但更多的是混合的。
您必须使用会话来分隔每个用户的值,如果您在整个程序中具有相同的值并且每个asp.net池中的所有用户都相同,则适合使用static。
我有。所有用户的静态值都相同。成本较低,因为它们创建了一个,而不使用内存分配,并且每次程序访问它时都会取消分配,所以对于小值来说速度更快,对于大量数据来说速度更快。
静态值不是线程安全的,如果您使用多线程,或者在没有会话的页面上调用它们,则需要注意这一点。
我希望这能有所帮助。
此外,当应用程序死亡时,静态值会丢失,而会话值不一定会丢失(有很多持久会话提供程序)。