当存储大量变量时,使用Viewstate是否可以

时间:2013-02-18 11:16:28

标签: asp.net viewstate session-state

我知道SessionState和ViewState之间的区别:

  1. SessionState在整个会话中持续存在,而ViewState是同一页面。
  2. SesssionState停留在服务器中,但VewState在客户端和服务器之间传输
  3. 现在考虑到上述情况,如果我有足够的变量(这意味着很多带宽)我需要通过回发来保留哪一个应该选择?我卡在中间是因为:

    1. 我知道我只会在一个页面中使用这些变量而ViewState适用于这种情况
    2. 另一方面,由于变量很多,似乎需要占用大量带宽。

2 个答案:

答案 0 :(得分:1)

变量通常不占用kbs或更少的空间,将数据放入会话中可能会降低服务器的性能,因为客户端数量会增加服务器计算机上的负载相乘。另一方面,视图状态不会在服务器上占用空间,并且可以为其他有用的操作节省内存。

答案 1 :(得分:1)

除非你说的是几千个变量,否则没有什么可担心的 大多数asp.net控件在ViewState中存储了很多状态变量。

将变量放入ViewState后,您可以轻松使用页面性能工具查看页面大小的增加。在大多数情况下,不必担心。