ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等
内置对象方法 信息量大小 作用域及保存时间 应用范围
=============================================================================
Application任意大小的数据 整个应用程序的生命期 整个应用程序/所有用户
Session小量简单的数据 用户活动时间+延迟时间(默认20分钟) 单个用户
Cookie小量简单的数据 可以根据需要设定单个用户
Viewstate小量简单的数据 一个WEB页面的生命期 单个用户
Cache任意大小的数据 可以根据需要设定 整个应用程序/所有用户
隐藏域小量简单的数据 一个WEB页面的生命期单个用户
查询字符串 小量简单的数据 直到下个页面跳转请求服务 单个用户
========================================================================================
1.Application:用于保存所有用户共用的数据信息。在Asp.Net中类似的配置数据最好保存在Web.config文件中。如果使用Application对象,一个需要考虑的问题是任何写操作都要在 Application_OnStart事件(global.asax)中完成。尽管使用Application.Lock和 Application.Unlock方法来避免写操作的同步,但是它串行化了Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈。因此最好不要用此对象保存大的数据集。
使用如下:
//存放信息
Application["UserNameID"]="1000";
Application.Add("USer", datatable);
//读取信息
String NameID=Application["UserNameID"].ToString();
GridView1.DataSource = Application["USer"] as DataTable;
GridView1.DataBind();
2.Session:用于保存每个用户的专用信息。Session中的信息保存在Web服务器的内存中,保存的数据量可大可小。当Session超时或被关闭时将自动释放保存的数据信息。对于小量的数据Session对象保存还是一个不错的选择。
使用如下:
//存放信息
Session["UserNameID"]="1000";
//读取信息
String NameID=Session["UserNameID"].ToString();
3.Cookie:用于保存客户浏览器请求服务器页面的请求信息,其有效期可以人为设置,而且其存储的数据量很受限制,因此不要保存数据集及其他大量数据。而且Cookie以明文方式将数据信息保存在客户端的计算机中,因此最好不要保存敏感的未加密的数据。
使用如下:
//存放信息
Response.Cookie["UserNameID"].Value="1000";
//读取信息
String NameID=Response.Cookie["UserNameID"].Value;
4.ViewState:常用于保存单个用户的状态信息,可以保存大量的数据但是过多使用会影响应用程序的性能。所有Web服务器控件都使用ViewStat在页面回发期间保存自己的状态信息。每个控件都有自己的ViewState,不用时最好关闭以节省资源。通过给@Page指令添加"EnableViewState= false"属性可以禁止整个页面的ViewState。
使用如下:
//存取信息
ViewState["UserNameID"]="1000";
//读取信息
string NameID=ViewState["UserNameID"].ToString();
5.Cache:用于在Http请求间保存页面和数据。它允许将频繁访问的大量服务器资源存储在内存中,当用户发出相同的请求时服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求时间。
使用如下:
//存放信息
Cache["UserNameID"]="1000";
//存放信息
Cache.Insert("UserNameID","1000");
//读取信息
String UserNameID=Cache["UserNameID"].ToString();
6.隐藏域:Hidden控件属于Html类型的服务器控件,可以实现隐藏域的功能,他和其他的空间没什么区别只是不会在浏览器上显示,始终处于隐藏状态。
使用如下:
//存放信息
Hidden.Value="1000";
//读取信息
String UserNameID=Hidden.Value;
7.查询字符串:将传递的值连接在URL后面,然后通过Response.Redirect方法实现客户端的重定向。
使用如下:
Response.Redirect("User.aspx?UserNameID=10000&LevelD=100");
执行上面的语句后在IE地址栏显示的URL的代码如下:
http://localhost/User.aspx?UserNameID=1000&LevelID=100
当跳转到User.aspx后,可以通过下面代码获得传递的信息:
String UserNameID,LevelD;
UserNameID=Request.Params["UserNameID"];
LevelD=Request["LevelD"];
========================================================================================
Application
1、Application用来保存所有用户共用的信息
2.、在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Application是理想的选择。但是在Asp.net开发环境中我们把类似的配置数据放在Web.config中。
3、如果要使用Application 要注意的是所有的写操作都要在Application_OnStart事件中完成(global.Asax),尽管可以使用 Application.Lock()避免了冲突,但是它串行化了对Application的请求,会产生严重的性能瓶颈。
4、不要使用Application保存大数据量信息
5、代码:Application[“UserID”]=”test”;
String UserName=Application[“UserID”].ToString();
Session
1、Session用来保存每一个用户的专有信息
2、Session的生存期是用户持续请求时间加上一段时间(一般是20分钟左右)
3、Session信息是保存在Web服务器内存中的,保存数据量可大可小
4、Session超时或者被关闭将自动释放数据信息
5、由于用户停止使用应用程序之后它仍在内存中存留一段时间,因此这种方法效率较低
6、代码:Session[“UserID”]=”test”;
String UserName=Session[“UserID”].ToString();
Cookie
1、Cookie用来保存客户浏览器请求服务器页面的请求信息
2、我们可以存放非敏感的用户信息,保存时间可以根据需要设置
3、如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止
4、Cookie对象的Expires属性设置为MinValue表示永不过期
5、Cookie存储的数据量受限制,大多数的浏览器为4K因此不要存放大数据
6、由于并非所有的浏览器都支持Cookie,数据将以明文的形式保存在客户端
7、代码:Resopnse.Cookies[“UserID”]=”test”;
String UserName= Resopnse.Cookies [“UserID”].ToString();
ViewState
1、ViewState用来保存用户的状态信息,有效期等于页面的生命周期
2、可以保存大量数据但是要慎用,因为会影响程序性能
3、所有的Web服务器控件都是用ViewState在页面PostBack期间保存状态
4、不需要则关闭 @page 里面设置EnableViewState=false
5、代码:ViewState[”ID”]=”cc”;
String ID =ViewState[“ID”].ToString();
Cache
1、Cache用于在Http请求期间保存页面或者数据
2、Cache的使用可以大大的提高整个应用程序的效率
3、它允许将频繁访问的服务器资源存储在内存中,当用户发出相同的请求后,服务器不是再次处理而是将Cache中保存的数据直接返回给用户
4、可以看出Cache节省的是时间—服务器处理时间
5、Cache实例是每一个应用程序专有的,其生命周期==该应用程序周期
应用程序重启将重新创建其实例
6、注意:如果要使用缓存的清理、到期管理、依赖项等功能必须使用Insert 或者Add方法方法添加信息
7、代码:Cache[”ID”]=”cc”;或者Cache.Insert(“ID”,”test”);
String ID =Cache[“ID”].ToString();
Hidden
1、Hidden控件属于Html类型的服务器控件,始终处于隐藏状态
2、每一次提交的时候它会和其他服务器控件一起提交到服务器端
3、代码如下:Hidden.Value=”cc”;
string id=Hidden.Value; 要使用Runat=server
分享到:
相关推荐
Application,_Session,_Cookie,_Viewstate,_Cache对象用法和区别.pdf
Application,Session,Cookie,ViewState和Cache生命周期
Application、Session、Cookie、ViewState、Cache、Hidden的区别
ASP.NET保存信息总结(Application,Session,Cookie,ViewState和Cache等) .doc
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。 方法 信息量大小 作用域和保存时间 应用范围 保存位置
本文主要介绍Application、Cookie、Session、Cache和ViewState,并总结了在什么情况下使用他们,希望对大家有所帮助。
在asp.net中储存数据的方式有很多,包括application,session,cache, cookie, viewstate。其中application和cache的应用范围,使用方式都比较相似,这里主要对比一下这两种方式。
状态管理与数据库、状态管理的比较参数、Cookie、session的、Application、Cache、隐藏域/ViewState/ControlState、ControlState、Profile等等的概述、使用说明及对比,挺有用的,共享一下,欢迎下载
本文接介绍使用5种不同的对象变量进行跨页面传值
20.2.1 使用Cache对象 高速缓存数据687 20.2.2 高速缓存依赖性688 20.3 使用SQL Server高速 缓存依赖性694 20.3.1 使数据库支持SQL Server高速缓存 禁用功能695 20.3.2 使表支持SQL Server 高速缓存...
12.1.4 使用DataReader对象 360 12.1.5 使用数据适配器 362 12.1.6 使用参数 365 12.1.7 DataSet和DataTable 368 12.2 ADO.NET的新增功能 371 12.2.1 从各种数据源中批量加载数据 372 12.2.2 批处理多个更新 ...
使用SQL Cache Dependency 代替 Ibatisnet 提供的CacheModel ASP.NET 2.0中小心Profile命名冲突 使用ASP.NET 2.0 Profile存储用户信息[翻译] Level 200 [ASP.NET 2.0]PageParser.GetCompiledPageInstance中存在一个...
24 <br>0050 using关键字的用法 24 <br>0051 变量的作用域 25 <br>2.5 其他 26 <br>0052 有效使用this对象 26 <br>0053 如何声明变量 26 <br>0054 如何声明相同类型的多个变量 26 ...