3

我将填充DataTable和其他controls来自复杂的object.

  1. 我应该在哪里存储这样的object?
  2. 会话变量在多大时开始影响页面的性能?
4

2 回答 2

3

对象中的数据Session存储在服务器的内存中。因此,存储限制是服务器可用的内存。此数据不会在任何阶段发送到客户端,除非您明确这样做。相反,一旦您为 Session 对象分配了任何值,MVC 代码就会向客户端浏览器发送一个 cookie。然后使用此 cookie 的值来唯一标识会话。

所以...

  1. Session对象是专门设计的,以便您可以在服务器上存储特定于会话的数据,因此是您放置所描述的特定于会话的数据结构的合适位置。
  2. 因为该Session对象仅是服务器端的,Session所以用于存储计算成本高且在多个页面刷新之间保持不变的操作的结果将加快页面加载速度,因为您可以使用先前的结果而不必再次创建它。除非您突破服务器上的内存限制,否则您不会看到任何性能下降。
于 2013-02-20T01:28:24.417 回答
0
  1. 如果它是每会话对象,会话字典是存储它的合理位置
  2. 如果您使用 InProcess 会话存储,则对象的大小永远不会影响页面性能(至少在所有数据导致进程交换之前)。其他会话存储可能会产生轻微影响,具体取决于将数据从例如 SQL 移动到本地进程所需的时间。这将很快,直到您的对象变得非常大。
于 2013-02-20T01:20:38.213 回答