Web控件里的ViewState问题
web控件都有ViewState属性,我到现在还不太理解,什么时候关闭ViewState属性比较合适?还有我看很多人都重写VIEWSTATE,重写了有什么作用,希望高手们来给解答下,不要搞得专业术语太多,最好通俗点讲,我太菜了,怕看不懂!
------解决方案--------------------ViewState是asp.net中保存当前网页的状态的,具体gg下哦
------解决方案--------------------如果只有现实,不需要在postback的时候进行任何服务器端操作或者说是webform方式的操作,可以禁用掉
------解决方案--------------------可以暂时持久化一些信息~
------解决方案--------------------ViewState用来保存每个控件的信息,因为ASP.NET的最重要理念就是Postback,而网页提交以后原本的信息会全部丢失,所以需要用某种方法来保存,如Cookie,Session,DB,Application等等,而ViewState就是保存信息的一种手段,实际原理是把信息写入一个隐藏的表单元素,提交的时候就可以把这些信息post到下一个周期的页面里去。
并不是任何情况下都可以把ViewState禁用,禁用前最好先调试一遍。
------解决方案--------------------viewstate就是页面级缓存
当你这个控件不会传的时候就可以禁掉 不过一般都不用管它吧 微软的默认都是合理的除非你有特殊需要
------解决方案--------------------你需要去了解一下ASP.NET页面的生命周期,这样就很容易理解了。
因为http协议是无状态协议,服务器端无法知道客户端发生哪些操作,所以为了让Webform像Winform一样能够响应事件,就引入了ViewState来记录页面上每个控件的初始状态,在页面呈现之前,ASP.NET会把页面的初始状态通过ViewState记录起来,然后客户端在回发的时候通过反序列化ViewState,得到客户端的操作,以便能够响应相关的事件。
这个是ViewState最根本的用途,这样说很清楚了吧。
------解决方案--------------------mark
------解决方案--------------------如果你的gridview只是单纯做显示用的,那么就应该关闭ViewState,否则会造成多余的页面html脚本,这是应该避免的,你看下页面的源码就知道了;ViewState是用来记住控件状态的,如果你需要从控件中取得用户输入等情况,就不能关闭ViewState,控件状态需要在ViewState中回传服务器端
------解决方案--------------------viewstate 页面级缓存
不用管它
------解决方案--------------------
------解决方案--------------------当你 页面 没有 触发数据,不回发的时候 可以禁掉~~