我是Web Development和ASP.net的新手 但我想知道以下问题:
如果我在网页上声明一个静态变量和几个 用户同时访问同一页面。这是静态的吗? 每个用户唯一的变量或它会干扰 不同的用户?
由于
答案 0 :(得分:7)
是的,它会干扰用户之间以及单个用户的并发请求之间的干扰。除非您非常确定自己在做什么,否则请避免在ASP.NET(以及大多数其他开发)中使用静态字段。
考虑使用会话状态来处理您在此处所做的事情,或者将某些事情作为请求本身的一部分(表单数据,cookie等)。
答案 1 :(得分:2)
这个静态变量是否对每个用户都是唯一的
没有
它会干扰不同的用户吗?
是
您可能希望使用其他一些持久性媒介,例如会话状态,caching等。
有些人在ASP.NET中的字段上使用[ThreadStatic]
属性,因此它对每个用户都是唯一的,但这是危险的,不应该这样做。不惜一切代价避免这样做。我只提出来以防其他人推荐它。