Application、Session、Cookie、Viewstate, Cache对象用法和差别

 1.Application:用于保存所有效户共用的数据信息。 在Asp.Net中类似的设备数据最好保存在Web.config文件中。若是应用Application对象,一个须要推敲的题目是任何写操纵都要在 Application_OnStart事务(global.asax)中完成。尽管应用Application.Lock和 Application.Unlock办法来避免写操纵的同步,然则它串行化了Application对象的恳求,当网站接见量大的时辰会产生严重的机能 瓶颈。是以最好不要用此对象保存大的数据集。

应用如下:
//存放信息
Application["UserNameID"]="1000";
//读取信息
String NameID=Application["UserNameID"].ToString();

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

原文地址:https://www.cnblogs.com/double2012/p/2759931.html