- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态管理 大纲 状态管理概述 基于客户端的状态管理 基于服务器的状态管理 状态管理概述 ASP.NET工作原理 ①客户请求Web 页 ②Web 服务寻找指令文件(.aspx) ③ASP.NET 代码被发送给公共语言运行时进行编译 ④HTML 流返回给浏览器和指令 ⑤浏览器处理HTML 并显示页面 状态管理概述 Http协议-“无状态协议” Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的“无状态”连接。只要有一个希望浏览器返回一个页面、图象或其他资源的请求,就发生以下事情: – 连接到服务器 – 告诉服务器想要的页面、图象或者其他项 – 服务器发送请求的资源 – 服务器切断连接,把用户忘的干干净净。 状态管理概述 WEB页面处理过程 ? 页面的一次往返处理:用户对Server Control的一次操作,就可能引起页面的一次往返处理:页面被提交到服务器端,执行响应的事件处理代码,重建页面,然后返回到客户端 ? 页面重建:每一次页面被请求,或者页面事件被提交到服务器,运行环境将执行必要的代码,重建整个页面,把结果页面送到浏览器,然后抛弃页面的变量、控件的状态和属性等等页面信息。 ? 页面处理内部过程: – Page_load :IsPostBack属性判定页面是否为第一次被请求 – 事件处理:这一阶段处理表单的事件 – Page_Unload :这个阶段页面已经处理完毕,需要做些清理工作。 一般地,你可以在这个阶段关闭打开的文件和数据库链路,或者释放对象 状态管理概述 ASP.NET Web Form的“连续”和“有状态”假象 ? ASP.NET 的设计者们,从实际访问者的角度重新考虑了这一过程:访问者打开一个页面,点击一个按钮,看到新的画面……这一切似乎都是连续的。 ? 这种连续性假象是由ASP.NET 页框架、页及其控件实现的。回发后,控件的行为必须看起来是从上次Web 请求结束的地方开始的。 ? 另一方面,对于Web Form 中的TextBox,ASP.NET 也让它们具有了状态,可以知道上一个loop 和这一个loop 之间的TextBox 值的变化;如果变化,可能会触发TextBox 的TextChanged事件。这同样是ASP.NET 特意实现的一个假象。 大纲 状态管理概述 基于客户端的状态管理 基于服务器的状态管理 基于客户端的状态管理 视图状态 隐藏的窗体域 Cookie 查询字符串 视图状态 ASP.NET 使用了ViewState 视图状态,是所有控件的一个属性。如果你查看Web Form 产生的HTML 代码,可以看到一个名为__ViewState 的隐藏字段,ASP.NET 将状态信息以Hash 的方式存储在这里。通过它,可以在下一次回发时知道回发前各控件的状态。 视图状态 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 方法) 视图状态 ? 启用视图状态 EnableViewState = “true”默认为true,如果为false,那么该控件和子控件的视图状态就不会被串行化。 ? 可以在视图状态中存储的类型 Int32,Bool,String,Color,Array,ArrayList,Unit及其以上类型的HashTable对象。 ? 视图状态与安全 视图状态串行化的字符串表达式作为明文来往返传送。这是不安全的。在视图状态中决不能保存任何信息(例如口令、连接字符、文件路径) 。 视图状态 ViewState 隐藏域 隐藏域不会显示在用户的浏览器中,但我们可以象设置标准控制的属性那样设置其属性。当一个网页被提交给服务器时,隐藏域的内容和其他控制的值一块儿被送到HTTP Form集合中。隐藏域可以是任何存储在网页中的与网页有关的信息的存储库,隐藏域在其value属性中存储一个变量,而且必须被显性地添加在网页上。 ASP.NET中的HtmlInputHidden控制提供了隐藏域的功能。 隐藏域 Hidden 隐藏域 隐藏域使用注意事项 ?
文档评论(0)