听完《ASP.NET状态管理》后
今晚听完《ASP.NET状态管理》后,觉得asp.net状态管理跟asp状态管理差不多,区别是asp.net里增加了视图状态即ViewState,下面是一些记录:
基于客户端的状态管理
• 视图状态
• 隐藏的窗体域
• Cookie
• 查询字符串
ASP.NET 使用了ViewState 视图状态,是所有控件的一个属性。如果你查看Web Form 产生的HTML 代码,可以看到一个名为__ViewState 的隐藏字段,ASP.NET 将状态信息以Hash 的方式存储在这里。通过它,可以在
下一次回发时知道回发前各控件的状态。
视图状态
• 启用视图状态
EnableViewState = “true”
默认为true,如果为false,那么该控件和子控件的视图状态就不会被串行化。
• 可以在视图状态中存储的类型
Int32,Bool,String,Color,Array,ArrayList,Unit及其以上类型的HashTable对象。
• 视图状态与安全
视图状态串行化的字符串表达式作为明文来往返传送。这是不安全的。在视图状态中决不能保存任何信息(例如口令、连接字符、文件路径) 。
基于服务器的状态管理
信息存储在服务器上,尽管其安全性较高,但会占用较多的web服务器资源。服务器端通常用以下方式实现状态管理:
• Aplication对象
• Session对象
WEB页面处理过程
• 页面的一次往返处理:用户对Server Control的一次操作,就可能引起页面的一次往返处理:页面被提交到服务器端,执行响应的事件处理代码,重建页面,然后返回到客户端
• 页面重建:每一次页面被请求,或者页面事件被提交到服务器,
asp.net运行环境将执行必要的代码,重建整个页面,把结果页面送到浏览器,然后抛弃页面的变量、控件的状态和属性等等页面信息。
• 页面处理内部过程:
– Page_load :IsPostBack属性判定页面是否为第一次被请求
– 事件处理:这一阶段处理表单的事件
– Page_Unload :这个阶段页面已经处理完毕,需要做些清理工作。
一般地,你可以在这个阶段关闭打开的文件和数据库链路,或者释放对象
ASP.NET 服务器控件的生命周期
1. 初始化- Init 事件(OnInit 方法)
2. 加载视图状态- LoadViewState 方法
3. 处理回发数据- LoadPostData 方法
4. 加载- Load 事件(OnLoad 方法)
5. 发送回发更改通知-
RaisePostDataChangedEvent 方法
6. 处理回发事件- RaisePostBackEvent 方法
7. 预呈现- PreRender 事件(OnPreRender 方法)
8. 保存视图状态- SaveViewState 方法
9. 呈现- Render 方法
10. 处置- Dispose 方法
11. 卸载- UnLoad 事件(OnUnLoad 方法)
浙公网安备 33010602011771号