对象缓存

来源:互联网 发布:单片机采样大电流电路 编辑:程序博客网 时间:2024/05/16 10:52

缓存分为三个级别:
1:应用程序级(Application)---------------存在数据读取的冲突问题。
 Application对象:它是ASP.NET内置的对象,表示ASP.NET应用程序的实例。Application状态由HttpApplicationState类表示,包括所有与应用程序相关的方法和集合。当第一个用户访问一个ASP.NET文件时,会启动应用程序并创建一个Application对象,创建之后,可以在整个程序中使用,直到应用程序关闭。

存在数据读取的冲突问题。
为了解决数据冲突问题:使用lock()和unlock()方法对Application对象进行锁定和解锁。
lock()用于防止用户更改变量值。使得单个用户会话有应用程序的管理权而锁定所有的应用程序变量,这样就可以防止其他任何用户编辑应用程序变量。
nulock()用于释放对应用程序变量的锁定。此方法一旦执行,用户就会失去对应用程序变量的控制权。

2:会话级(Session)
 session对象:由于cookie存在不安全因素。所以设计了session对象。session对象用于存储用户的信息。此信息将在用户会话期间保留。当用户在一个应用程序中由一个页面到另一个页面时。存储在session对象中的数据不会丢失。对象会在用户放弃会话或会话超时时的时候被清除。
 session对象包含特定的某个用户信息。此信息不能共享或由应用程序的其他用户访问。当会话过期或终止时。服务器就会清除session对象。
 单服务器的会话:有一个共同的起始源头,是浏览器与服务器之间的一组连续的交流。
 多服务器的会话:单点登录

3:页面级(ViewState)

cookie:主要是在客房端系统上保存客房端的个人信息。
cookie可以分为两类:
 会话性的cookie:是暂时的。当关闭浏览器后,任何会话cookie都会丢失。
 持久性的cookie:具有生命周期。有固定的过期日期。持久性的cookie都会在硬盘上形成文件。把状态永久保存.它不属于某个级别
 对于单个网站,浏览器最多可容纳20个cookie,对于多个不同网站,最多可以容纳400个网站.cookie变量最多可保留4KB的数据。

会话级跟页面级不存在数据读取冲突的问题,

Global.asax文件包含Application_start Application_End  Session_Start Session_End事件。
Application对象是存储于服务器的全局变量。
Cooike存储信息于客户端。
Session对象用于程序时会激活Session_Start事件。而用户退出应用程序时会触发Session_End事件。