`

ASP.NET状态管理之一(概括篇)

阅读更多

每次将网页发送到服务器时,都会创建网页类的一个新实例。在传统的Web编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失。

状态管理是您对同一页或不同页的多个请求维护状态和页信息的过程。与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例是否一直在查看页或站点。此外,到服务器的每一往返过程都将销毁并重新创建页;因此,如果超出了单个页的生命周期,页信息将不存在。

基于客户端的状态管理
视图状态

控件状态

隐藏域
ASP.NET 允许您将信息存储在 HiddenField 控件中,此控件将呈现为一个标准的 HTML 隐藏域。隐藏域在浏览器中不以可见的形式呈现,但您可以就像对待标准控件一样设置其属性。当向服务器提交页时,隐藏域的内容将在 HTTP 窗体集合中随同其他控件的值一起发送。隐藏域可用作一个储存库,您可以将希望直接存储在页中的任何特定于页的信息放置到其中。
ASP.NET状态管理之三(隐藏域HiddenField)

 


Cookie
Cookie是一些少量的数据,这些数据或者存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中。Cookie包含特定于站点的信息,这些信息是随页输出一起由服务器发送到客户端的。Cookie可以是临时的(具有特定的过期时间和日期),也可以是永久的。

可以使用Cookie来存储有关特定客户端、会话或应用程序的信息。Cookie保存在客户端设备上,当浏览器请求某页时,客户端会将Cookie中的信息连同请求信息一起发送。服务器可以读取Cookie并提取它的值。一项常见的用途是存储标记(可能已加密),以指示该用户已经在您的应用程序中进行了身份验证。
ASP.NET状态管理之五(Cookie)

 


查询字符串
查询字符串是在页 URL 的结尾附加的信息
ASP.NET状态管理之二(查询字苻串QueryString)

 


基于服务器的状态管理

应用程序状态
ASP.NET 允许您使用应用程序状态来保存每个活动的 Web 应用程序的值,应用程序状态是 HttpApplicationState 类的一个实例。应用程序状态是一种全局存储机制,可从 Web 应用程序中的所有页面访问。
应用程序状态存储在一个键/值字典中,在每次请求一个特定的 URL 期间就会创建这样一个字典。可以将特定于应用程序的信息添加到此结构以在页请求期间存储它。
一旦将应用程序特定的信息添加到应用程序状态中,服务器就会管理该对象。
ASP.NET状态管理之八(应用程序Application)

 

 

暂存状态
获取可用于在 HTTP 请求过程中在 IHttpModule 和 IHttpHandler 之间组织和共享数据的键值
ASP.NET状态管理之四(暂存状态HttpContext.Items)

 

 

 

 

 

 

 

 

 

 

 

 

最近做了一个BTOC项目,遇到了一些网页状态存储管理的问题,现总结一下我的解决方案:

首先,我们说说状态:

状态是任何类型数据能够在一定时期内保持活跃的信息。

我们这里说的一定时期可以是整个应用程序的生命周期,也可以是用户操作程序的时间,也可以是单个页面的生命周期等等。时间是有长有短的。

由于WEB程序的HTTP协议是无状态的,所以存储状态信息就成了一个要解决的问题,既然要存储数据,那么存储的数据就需要有个存放位置,我认为只有2个地方:

·客户机

·服务器

按照存放位置进行分类,ASP。NET中状态存放方式如下:

·客户机







·服务器


©会话---这种数据和每个用户联系
详细说明



©缓存---这种数据与应用程序相类似
详细说明(请点击)

©其他物理数据存放媒体---例如数据库,TXT文本,XML文件等等
详细说明(请点击)



我总结了以上九种方式,存储数据,不知是否有遗漏,大家可以补充

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics