.Net 我的学习之路(五) --- Asp.Net 页面状态的实现原理
来源:互联网 发布:修改身份证软件下载 编辑:程序博客网 时间:2024/05/21 21:49
页面状态机制的具体实现原理
上次我们讲到了Asp.net提供了一系列的维持页面状态的机制,有Session, Cookie, ViewState, Application,Cache,HiddenField 等。这次我来讨论一下一些机制是如何实现的。
- Session。Session的实现是依赖于SessionID的,每次client端访问server端的时候,服务器都会给client分配一个SessionID,下次client再次访问的时候,在Request里面把这个SessionID一起提交给Server,Server就能根据Request里面的SessionID来找到在Server端所储存的数据了。那么现在的问题就是这个SessionID在client端被放在哪里了呢?答案就是Cookie中,但是如果client端禁用了Cookie,那这个SessionID又该怎么办呢?哈哈,还可以通过QueryString来传递。所以Session机制的实现是依赖于Cookie和QueryString的。
- ViewState。前文提到,在ViewState中存放的对象必须是可以序列化的对象,这是和它的实现机制有很大关联的。序列化可以把内存中的对象转变为string,还可以根据string转变回内存中的对象,这种机制是方便了我们进行对象的持久化。Asp.net把放入ViewState中的对象作为一个整体序列化成为一个HiddenField中string的Value。HiddenField前文已经提到了,是一个页面的隐藏域,每次Postback之后,这个HiddenField中的value就会被传回并被反序列化为ViewState。所以ViewState的实现就是依赖于HiddenField,你可以看见每个页面再Render到client端的时候都会带有一个这样的HiddenField, <input type="hidden"name="__VIEWSTATE" id="__VIEWSTATE"value="XXX"/>。看,这就是在Client端的ViewState了,不过由于是序列化过的,我也不知道里面是什么了。所以ViewState是不能在Client端进行操作的,不过普通的HiddenField就可以哦
- 其他的页面状态实现的机制就比较简单。Cookie是在Client端以文件方式存储的。Application和Cache是在server端内存中存储。QueryString是在Url里面存储。HiddenField是以Html元素存储。
希望了解了这些机制以后,能使你更清楚地了解什么时候该使用哪种机制来存储页面的状态。
- .Net 我的学习道路(一)--- 代码人的素质
- .Net 我的学习道路(二)--- 语法
- .Net 我的学习之路(三)--- Asp.net
- .Net 我的学习之路(四) --- Asp.Net 页面状态
- .Net 我的学习之路(五) --- Asp.Net 页面状态的实现原理
- .Net 我的学习之路(五) --- Asp.Net 页面状态的实现原理
- .Net 我的学习之路(四) --- Asp.Net 页面状态
- .Net 我的学习之路(三)--- Asp.net
- 理解asp.net保存页面状态值的原理
- 我的ASP.NET学习之路(1)
- ASP.NET温故而知新学习系列之ASP.NET中的状态—基于服务器端的状态管理Session(二)
- ASP.NET温故而知新学习系列之ASP.NET中的状态—基于服务器端的状态管理Session(二)
- ASP.NET状态管理之五(Cookie)
- ASP.NET状态管理之五(Cookie)
- [我的ASP.net学习历程]数据库操作之(二)
- [我的ASP.net学习历程]DataAdapter操作之(一)
- [我的ASP.net学习历程]DataAdapter操作之(二)
- 黑马程序员之ASP.NET学习笔记:ASP.NET页面传递值的方式
- ASP.NET温故而知新学习系列之ASP.NET中的状态—2-基于服务器端的状态管理Session
- asp.net的页面
- asp.net页面统计报表的实现
- asp.net页面统计报表的实现
- ASP.NET 伪静态页面的实现
- 解决Safari字体显示不清晰的方法
- Java垃圾回收机制图表,没有空间了才进行回收.
- 五中有用的过滤器
- 偷菜的革命——献给所有忙于偷菜、乐于偷菜和疲于偷菜的您!
- 用Media Player设计个性化媒体播放器
- .Net 我的学习之路(五) --- Asp.Net 页面状态的实现原理
- SQL 复制一张表
- 我要泡妞
- 开发人员一定要加入收藏夹的网站
- Android数据存取之Files
- 选择学习“下一个”程序语言
- SQLServer XML查询
- 非静态成员作为线程函数
- 1.开发基础