ViewState可以存储多少数据?

时间:2011-05-03 03:16:17

标签: asp.net viewstate

我有一个viewstate来存储来自SharePoint的数据查询,

数据可能非常庞大,

我想在viewstate中存储的原因是为了稍后对查询数据进行过滤。

但是,我不确定它是否会导致任何性能问题,因为有很多数据(行和列),因为我知道viewstate将消耗客户端浏览器的内存。

那么实际上可以查看多少数据存储?

5 个答案:

答案 0 :(得分:6)

是的,它绝对会导致性能问题,因为它会增加页面的大小。由于性能问题,ViewState能够存储比应该存储的数据更多的数据。

我会探索其他选项,例如缓存等。

答案 1 :(得分:1)

每次回发都会在服务器上向客户端发送Viewstate数据,从而导致用户每次都下载该信息。存储在viewstate中的数据越多,页面加载的速度就越慢。

但是要回答你的问题,viewstate没有大小限制。

答案 2 :(得分:0)

如果我没记错的话,ViewState嵌入在源代码中(查找<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="xxxxxxxx" />)。在ViewState中拥有大量数据会导致您的页面在每次请求时发出更多字节的POST(并且您需要执行POST来访问该ViewState)。还有解密ViewState数据的成本(虽然我不知道可能会产生什么样的影响......)。

希望这有帮助!

答案 3 :(得分:0)

ViewState不仅会在用户的浏览器中使用内存,还会降低页面加载的性能,因为浏览器每次都必须向/从服务器发送/接收所有数据。

就像其他人所说的那样,使用服务器端会话状态或服务器端缓存会更好。

答案 4 :(得分:0)

当您使用ViewState时,它已从服务器获取并将导致性能问题。用户浏览器也可能影响性能。

虽然隐藏字段的最大大小没有发布限制 (viewstate的实现)和大多数浏览器允许大尺寸,一些 已知代理服务器将它们限制为4k。