asp.net网站的哪些部分在用户之间共享?

时间:2014-05-08 13:51:22

标签: asp.net

在asp.net网站项目中,是否为每个客户端编译页面和.cs文件? 我怎样才能学到这种信息是否有任何资源? 网站的哪些部分在用户之间共享?

3 个答案:

答案 0 :(得分:1)

页面和cs文件由服务器编译(或者可以使用Visual Studio进行预编译),并根据HTML请求将它们提供给每个客户端。

代码的重新编译是由bin文件夹或web.config文件中的更改引起的,而不是由访问页面的不同用户引起的。

我承认我并不完全理解这个问题,但是如果你在谈论遗留类型的常见数据或“全局变量”,那么我可以补充说,会话范围的变量和应用程序范围的变量。只要应用程序正在运行,应用程序范围的变量就会为所有用户保留相同的值。

答案 1 :(得分:1)

一般来说,所有用户只有一个网站副本。

对于所有用户,只有一个static(VB.NET中为Shared)数据的副本,所以要小心。一些开发人员认为这些值会神奇地转换为每会话变量,但不会。 (我曾经这么想,然后学会了。)

如果使用Session状态,则每个浏览器会话将包含Session的一个副本。这是基于cookie的,因此使用IE和FireFox的同一用户将有两个会话。

每个页面请求都会创建Page类的新实例以及该页面上的所有控件。

答案 2 :(得分:-1)

asp.net是基于会话的,每个会话都会获得新的页面和变量/对象,因此除非他劫持其他人的会话,否则每个用户都会获得自己的“会话”。

如果要在用户之间共享变量/对象,请将其声明为静态。你可以创建也在用户之间共享的单例类。