我通常禁用我的ASP.net控件的viewstate,除非我明确知道我将需要它们的视图状态。我发现这可以显着减少HTML生成的页面大小。
这是好习惯吗?什么时候应该启用或禁用?
答案 0 :(得分:19)
是的,这是一个非常好的主意。有人可能会说它应该被Microsoft默认禁用,就像缓存一样。
要了解Viewstate在大小方面有多糟糕,您可以使用名为Viewstate Analyzer的工具。当您使用Viewstate启用现有应用程序时,这尤其有用。
禁用Viewstate的另一个好理由是,当你有大量组件依赖它时,很难在以后阶段禁用它。
答案 1 :(得分:5)
我认为这是一种很好的做法。许多ASP.NET开发人员都不知道他们的视图状态会给发送给用户浏览器的HTML带来巨大的负担。
答案 2 :(得分:4)
这是一个很好的做法。除非您在回发时使用ViewState值,否则某些复杂控件本身需要它们,因此最好将ViewState保存为将发送给客户端的一部分。
答案 3 :(得分:4)
您可能会发现MSDN上"ASP.NET State Management Recommendations" article中包含的信息对您做出决定非常有用。
通常在ASP.NET 2.0及更高版本中,由于引入了控制状态来存储引发事件所需的信息等,因此禁用ViewState的破坏性较小。
答案 4 :(得分:2)
绝对是一个好主意,没有什么比开发人员每次都在Page_Load中绑定dataGrid而且还提交viewstate的页面更糟糕了!
如果您计划使用AJAX Extensions中的UpdatePanel,这也是一个非常好的主意,这意味着您在UpdatePanel请求期间提交的内容较少。
(请注意,UpdatePanel可以说是好的:P)
答案 5 :(得分:0)
_Viewstate会不必要地增加需要传输的字节数。 因此,除非下次要使用数据,否则最好将其关闭。