ASP.NET Application,Session,Cookie 和 ViewState 等对象用法和区别
在 ASP.NET 中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState 和
Cache 等。下面分别介绍它们的用法和区别。
方法
信息量大小
作用域和保存时间
应用范围
保存位
置
Appli
cation
任意大小
整个应用程序的生
命期
整个应用程序/
所有用户
服务器
端
Cach
e
任意大小
可以根据需要设定
整个应用程序/
所有用户
服务器
端
Sessi
on
小量,简单
的数据
用户活动时间+一
段延迟时间(一般为 20
分钟)
单个用户
服务器
端
Cooki
e
小量,简单
的数据
可以根据需要设定
单个用户
客户端
View
state
小量,简单
的数据
一个 Web 页面的生
命期
单个用户
客户端
隐藏
域
小量,简单
的数据
一个 Web 页面的生
命期
单个用户
客户端
查询
字符串
小量,简单
的数据
直到下次页面跳转
请求
单个用户
客户端
1.Application 对象
Application 用于保存所有用户的公共的数据信息,如果使用 Application 对象,一个需要考虑的问
题是任何写操作都要在 Application_OnStart 事件(global.asax)中完成.尽管使用 Application.Lock
和 Applicaiton.Unlock 方法来避免写操作的同步,但是它串行化了对 Application 对象的请求,当网站访
问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合. 下面我们做个在线用户
统计的例子来说明这个问题:
(以文件的形式存放网站总访问量)
Global.asax 类
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.IO;
/// Global 的摘要说明。
public