Viewstate--在.aspx中自动储存~非input元素~的值,不需要的要禁止
2011-11-29 00:17
253 查看
ViewState(视图状态)的概念。从这个名字上我们大概可以体会出,ViewState主要是用来存放和视图有关的一些状态。ASP.NET通过ViewState自动保存控件的状态。你可能也发现了,文本框中的数据在页面提交后还是存在的。
ViewState中的数据默认是使用base64进行编码的
既然ViewState是存在页面上的,那么ViewState肯定是不能跨页面使用的,而且每个用户访问到的ViewState都是独立的。此外,ViewState也没有什么声明周期的概念,页面在ViewState就在,页面关闭了ViewState就关闭了。
我们做Web应用程序,心中要有这样一个意识,那就是客户端的一切都是不可相信的
储少量数据非常方便简单。但需要注意不要存储敏感数据,不要存储过大的数据。它们和前面说的Cookie、Session与Application不同。虽然Cookie也是存储在客户端,每次提交都附加在HTTP头中进行提交,但是它的数据量毕竟不大,起了一个标记的作用。Session和Application都是存储在服务器端的,不会参与页面往返过程。隐藏域、ViewState和ControlState始终参与往返,而且序列化和反序列化会消耗一定资源,因此,存储过大的数据会导致网页加载过慢,浪费服务器带宽。
label自增原理:他的值原则上不会只有表单的值会在request中传向服务器,而且传的值也仅仅是input中的name:value,其他的值不会传过去,相对于一个简单的label在一个一般处理程序中是不会传到服务器的。若真要将普通的控件传到服务器,则需要通过一个隐藏表单命名为相同的字段,在request过程中把Hidden传到Server后,修改时同时也将Client中的Label修改了。只有这样才能进行非表单元素的传值。 而在Web窗体(.aspx)中,其运行机制可以自动的调用Hidden标签,这里并不是调用一个非表单元素就创建一个Hidden标签,而是通过一个统一的ViewState的Hidden标签来标示当前页面的数据。记住如果不禁用相应表单的ViewState,页面会默认的通过ViewState记住多有的值,这样可能会浪费大量的服务器带宽。
ViewState仅是储存当前页面的非Input的元素的值,ViewState就是存一些没法将Value提交到服务器的控件的值。
textbox自增原理:在提交的时候自动将Name:Value提交到服务器。然后在服务器根据事件的处理程序得到相应的相应结果返回给Client。
ViewState中的数据默认是使用base64进行编码的
既然ViewState是存在页面上的,那么ViewState肯定是不能跨页面使用的,而且每个用户访问到的ViewState都是独立的。此外,ViewState也没有什么声明周期的概念,页面在ViewState就在,页面关闭了ViewState就关闭了。
我们做Web应用程序,心中要有这样一个意识,那就是客户端的一切都是不可相信的
储少量数据非常方便简单。但需要注意不要存储敏感数据,不要存储过大的数据。它们和前面说的Cookie、Session与Application不同。虽然Cookie也是存储在客户端,每次提交都附加在HTTP头中进行提交,但是它的数据量毕竟不大,起了一个标记的作用。Session和Application都是存储在服务器端的,不会参与页面往返过程。隐藏域、ViewState和ControlState始终参与往返,而且序列化和反序列化会消耗一定资源,因此,存储过大的数据会导致网页加载过慢,浪费服务器带宽。
label自增原理:他的值原则上不会只有表单的值会在request中传向服务器,而且传的值也仅仅是input中的name:value,其他的值不会传过去,相对于一个简单的label在一个一般处理程序中是不会传到服务器的。若真要将普通的控件传到服务器,则需要通过一个隐藏表单命名为相同的字段,在request过程中把Hidden传到Server后,修改时同时也将Client中的Label修改了。只有这样才能进行非表单元素的传值。 而在Web窗体(.aspx)中,其运行机制可以自动的调用Hidden标签,这里并不是调用一个非表单元素就创建一个Hidden标签,而是通过一个统一的ViewState的Hidden标签来标示当前页面的数据。记住如果不禁用相应表单的ViewState,页面会默认的通过ViewState记住多有的值,这样可能会浪费大量的服务器带宽。
ViewState仅是储存当前页面的非Input的元素的值,ViewState就是存一些没法将Value提交到服务器的控件的值。
textbox自增原理:在提交的时候自动将Name:Value提交到服务器。然后在服务器根据事件的处理程序得到相应的相应结果返回给Client。
相关文章推荐
- 在aspx页面不输出input type=hidden name="__VIEWSTATE"
- 去掉.net页面中的input type=hidden name=__VIEWSTATE id=__VIEWSTATE.doc
- 【转】怎么让开发的aspx返回的页面网页源文件中没有“乱码”ViewState???
- 去掉.net页面中的input type=hidden name=__VIEWSTATE id=__VIEWSTATE.doc
- 表单中的文本框(input)禁止自动完成下拉框显示(兼容ie/firefox/ff)
- 禁止ScrollView的childview自动滑动到底部
- 如何禁止表单input自动填充用户名密码
- MVC的ViewData自动给Razor写的input赋值
- Android:让WebView支持<input type=”file”…>元素 - GreatK
- IOS某个ViewController禁止自动旋转
- ASP.NET Internals: Viewstate and Page Life Cycle(http://www.codeproject.com/KB/aspnet/aspnetviewstatepagecycle.aspx)
- asp.net页面去掉ViewState的input
- 去掉.net页面中的<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE
- aspx不显示ViewState的实例
- 禁止ViewState的3种解决方法
- aspx 页面中 EnableViewState="false" 的效果
- 禁止ScrollView的childview自动滑动到底部
- 【翻译】创建ViewState特征的自动ViewState属性
- 哪些ViewState系统可以自动存储?
- IOS某个ViewController禁止自动旋转