黑马训练营自学笔记(03)

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

对ViewState的一些认识

   因为Http协议是一总无状态记忆的协议,即服务器不会知道上次可客户端请求的内容。WebForm中许多服务端控件的实现依靠的就是ViewState,ViewState是一个表单隐藏域,它保存了非表单元素的状态信息,创建服务器端控件的时候,服务器端控件的状态就依靠这个ViewState来保存。浏览器只认html代码,服务器端控件会被服务器渲染成html代码发回给客户端。所以服务端控件是基于ViewState的对客户端控件的一个封装。

   有时我们在使用服务端控件的时候并不需要把这个控件的一些状态信息保存到ViewState中,因为ViewState中不必要的一些信息会加大网页的流量,影响网页的加载速度和程序的性能,所以需要恰当的禁用ViewState。禁用ViewState的方法:EnableViewState="false"。需要说明的是,ViewState不能达到完全禁用的效果。禁用ViewState后,依赖于ViewState的控件状态将会失效反之这不会。比如WebForm实现的两个自家程序中。Input版本不会受影响(input是表单元素,其值不依靠ViewState),Div版本失效(Div是非表单元素,其值依靠ViewState)。而且禁用ViewState后在cs代码中直接对Label控件赋值也是能办到的(如:Label1.Text="100"),因为这个不依靠原来的状态。

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

posted @ 2012-10-11 17:38  duguao  阅读(134)  评论(0编辑  收藏  举报