![]() |
1
8
简单的答案可能不是你想听到的。通常,页面上的控件在它们确实不需要视图状态时,默认情况下具有视图状态。最好关闭view state,直到你知道你需要它为止,并且只在你真正想要保持视图状态的少数情况下才打开它。 |
![]() |
2
8
|
![]() |
3
6
我意识到这是一个旧的线程,但我们已经使用Telerik的Radcompression httpmodule一段时间了,它在压缩viewstate、Ajax和Web服务响应方面非常有效。您还可以在会话中欺骗并保存viewstate,这对低流量站点很好。 |
![]() |
4
1
SEB,视图状态已被压缩…这就是你看到的……控件的压缩版本。如果您希望减少开销,那么不要使用viewstate:) 视图状态的使用应保持在最低限度! |
![]() |
5
1
这是已发布视图状态的XML化可视化:
基本上只有几个按钮,它们喜欢知道它们的存在。(浏览器不发送
它可能通过挂接在加载/保存方法或HTTP模块中进行压缩,但这可能并不实际也不真正需要。
如果你的真实应用中的视图状态要大得多,那么就不要在视图状态中获取对象。这可以通过初始化
这背后的基本原理可以在 http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx 和 http://msdn.microsoft.com/en-us/library/ms972976.aspx 快速总结:
一个例外:
如果一个控件被动态地添加到控件树中,它将扮演一个追赶者。他们
每次我的viewstate意外增长时,我都会使用“viewstate decoder 2.2”应用程序来找出在viewstate中到底发生了什么。通常,数据不需要存在。 最后一句话: 视图状态不用于重新填充窗体!! 这些值已随PostData一起提交。 |
![]() |
6
1
同样,在对此进行了一些研究之后,我在一篇关于 Compressing View State . 要保存压缩视图状态,我执行了以下操作:
对于加载部分,这段代码使它对我起作用:
|
![]() |
7
0
最小化视图状态的最佳方法就是不要使用它。它将使您进行一些额外的工作编程(在回发时重新填充控制值等,但它将为您节省发送到浏览器的信息量)。你不能篡改它。 以下是到msdn上视图状态的链接: http://msdn.microsoft.com/en-us/library/ms972976.aspx 下面是一个描述一些最佳实践的链接: http://mnairooz.blogspot.com/2007/01/aspnet-20-viewstate-and-good-practices.html 还有一个关于禁用视图状态: http://www.codeproject.com/KB/aspnet/ASPNET_Best_Practices.aspx |
![]() |
8
0
压缩视图状态在某些情况下失败: -如果使用的是第页的更新面板,请不要使用压缩模式。 -如果您以某种方式更改了返回代码导致的视图状态,请不要使用压缩模式,因为这不会在返回后反映正确的视图状态。 |