我对 Web 开发和 ASP.net 很陌生,但我想知道以下问题:
如果我在网页上声明一个静态变量并且多个用户同时访问同一页面。这个静态变量是每个用户独有的还是会干扰不同的用户?
谢谢
是的,它会干扰用户之间以及单个用户的并发请求之间。除非您非常确定自己在做什么,否则请避免在 ASP.NET(和大多数其他开发)中使用静态字段。
考虑将会话状态用于您在此处所做的事情,或者作为请求本身的一部分(表单数据、cookie 等)。
这个静态变量对每个用户都是唯一的吗
不。
它会干扰不同的用户吗?
是的。
您可能想要使用其他一些持久性介质,例如会话状态、缓存等。
有些人[ThreadStatic]
在 ASP.NET 中的字段上使用该属性,以便它对每个用户都是唯一的,但这是危险的,不应该这样做。不惜一切代价避免这种情况。我只在其他人推荐它的情况下提出它。