您的位置:首页 > 编程语言 > ASP

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: