- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第张幻灯片共33张.ppt
在本单元中,您将学习:
描述网页的 ViewState和 ControlState数据模型
描述 Application 和 Session 对象,并解释如何在这些对象中保存和检索状态数据
描述各种会话状态数据保存策略
描述Cache对象并解释如何使用它来保存和管理状态数据
目标
每次将页面发布到服务器时,都将创建网页类的一个新实例。
在传统的 Web 编程里,与页面相关的信息以及页面上的控件都会在每次往返中丢失。
Microsoft ASP.NET framework 提供几种选项,以帮助您基于页面或在整个应用程序范围内保存数据。这些选项大致可分为两类:
基于客户端的状态管理选项
基于服务器的状态管理选项
ASP.NET 状态管理概述
基于客户端的选项包括在页面中或客户机计算机上保存信息。
基于客户端的状态管理选项有:
视图状态
控件状态
隐藏的窗体字段
Cookie
查询字符串
基于客户端的状态管理选项
视图状态:
ViewState属性提供一个字典对象用来在对同一页面的多个请求间保存值。
当页面被处理时,页面和控件的当前状态将被散列到一个字符串并作为隐藏字段保存在页面中。
当页回发到服务器时,页面在初始化时解析视图状态字符串并恢复页面中的属性信息。
要指定单个视图状态字段允许的最大大小,可使用属性System.Web.UI.Page.MaxPageStateFieldLength。
除了控件的内容,ViewState属性可以包含一些额外信息:ViewState[“color”] = “Yellow” ;
基于客户端的状态管理选项(续)
控件状态:
ControlState使您可以保留特定于控件的属性信息。
与ViewState属性不同的是,该属性无法在页面级别被禁用。
隐藏的窗体字段:
ASP.NET 提供 HtmlInputHidden 控件,它可提供字段隐藏功能。
隐藏字段在浏览器里不可见。
隐藏字段内容与其他控件的值一起发送到HTTP窗体集合。
基于客户端的状态管理选项(续)
Cookie:
在客户机浏览器会话中,Cookie 以文本文件形式保存在客户机文件系统或者内存中。
它们包含特定于站点的信息,服务器将这些信息与页面输出一起发送到客户机。
当浏览器请求页面时,客户端在发送请求信息的同时也发送保存在 cookie 里的信息。
服务器能读取cookie并抽取它的值。
查询字符串:
查询字符串是附加在页面 URL 后的一段信息。
为了确保查询字符串的可用性,您必须使用 HTTP GET 命令提交页面。
基于客户端的状态管理选项(续)
基于服务器的选项维护服务器上的状态信息。
基于服务器的状态管理选项有:
应用程序状态
会话状态
基于服务器的 状态 管理 选项
应用程序状态:
应用程序状态是System.Web.HttpApplicationState类的一个实例。
它使您可以保存每一个活动Web应用程序的状态值。
应用程序状态存储在一个键/值字典里,该字典在每次请求一个特定的URL时创建。
这是一个全局存储机制,可从 Web 应用程序的所有页面访问该机制。
它支持以下事件:
Application.Start
Application.End
Application.Error
事件处理程序可在 Global.asax 文件中定义。
基于服务器的 状态 管理 选项(续)
可在应用程序状态中保存值,如下所示:
Application[“Message”]=“Hello,world.”;
可从应用程序状态中获取值,如下所示:
if (Application[“AppStartTime”] != null)
{
DateTime myAppStartTime = (DateTime)
Application[“AppStartTime”];
}
基于服务器的 状态 管理 选项(续)
会话状态:
会话状态是 System.Web.SessionState.HttpSessionState 类的示例。
它使您可以保存每个活动Web 应用程序会话的值。
它与应用程序状态类似,不同的是范围仅局限于当前浏览器会话。
它支持以下事件:
Session.Start
Session.End
事件处理程序可在 Global.asax 文件中定义。
基于服务器的 状态 管理 选项(续)
可在会话状态中保存值,如下所示: string name = “Jeff”;
Session[“Name”] = name;
可从会话状态中检索值,如下所示:
if(Sessi
文档评论(0)