Application/Session/Cookie/viewstate/Cache/隐藏域/查询字符串的比较
- 博客分类:
- 技术杂绘
Application/Session/Cookie/viewstate/Cache/隐藏域/查询字符串的比较
2010年08月12日
Application
1. Application用来保存所有用户共享的信息,IIS停了就都初始化了
2.在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Application是理想的选择。但是在Asp.net开发环境中我们把类似的配置数据放在Web.config中。
3. 如果要使用Application 要注意的是所有的写操作都要在Application_OnStart事件中完成(global.Asax),尽管可以使用Application.Lock()避免了冲突,但是它串行化了对Application的请求,当网站访问量大的时候会产生严重的性能瓶颈。需建立global.asax,需悲观的锁定Lock/UnLock
4. 不要使用Application保存大数据量信息
5.代码:
Global.asax
void Application_Start(object sender, EventArgs e)
{
Application["a"] = 0;
}
.cs
...( )
{
Application.Lock();
Application["a"] = (int)Application["a"] +1;
sting a = Application["a"].ToString();
Application.UnLock();
}
Session
1.Session用来保存每一个用户的专有信息
2.Session的生存期是用户持续请求时间加上一段时间(默认20分钟)
3.Session信息是保存在Web服务器内存中的,保存数据量可大可小
4.Session超时或者被关闭将自动释放数据信息
5.由于用户停止使用应用程序之后它仍在内存中存留一段时间,因此这种方法效率较低
6.对于小量的数据Session对象保存还是一个不错的选择
7.asp php等Session是依赖Cookie的,如果用户不接受Cookie,那么Session也不能用;.net摒弃了,只要web.config设置Cookiesless为True,Session就可以自立门户了
8.代码:
//存放信息
Session["UserNameID"]="1000";
//读取信息
String NameID=Session["UserNameID"].ToString();
CooKie
1.Cookie用来保存客户浏览器请求服务器页面的请求信息
2. Cookie以明文方式将数据信息保存在客户端的计算机中,因此最好不要保存敏感的未加密的数据
3. 保存有效期可以根据需要设置,如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止
4.Cookie对象的Expires属性设置为MinValue表示永不过期
5. Cookie存储的数据量受限制,大多数的浏览器为4K,因此不保存放数据集及其他大量数据。
6. 由于并非所有的浏览器都支持Cookie
7.代码:
//存放信息
Response.Cookie["UserNameID"].Value="1000";
//读取信息
String NameID=Response.Cookie["UserNameID"].Value;
HttpCookie nc = new HttpCookie("newcookie");
nc.Values["name"] = "aidd";
nc.Values["age"] = "22";
nc.Values["dt"] = DataTime.Now.ToString();
HttpCookie getcook = Request.Cookies["newcookie"];
Response.Write(getcook.Values["age"]);
viewstate
session viewstate
占用服务器资源 true false
time out true false
存储任何.net类型 true false(只支持strings, integers, Booleans, arrays, ArrayList, hashtable, custom TypeConverters)
加重html负载 false true
session 对整个 application 有效 ,而 viewstate 相当于某个页面的 session
1.常用于保存单个用户的状态信息,有效期等于页面的生命周期
2.可以保存大量的数据但是过多使用会影响应用程序的性能
3.所有Web服务器控件都使用ViewStat在页面回发PostBack期间保存自己的状态信息
4.每个控件都有自己的ViewState,不用时最好关闭以节省资源
5.通过给@Page指令添加"EnableViewState= false"属性可以禁止整个页面的ViewState
6.代码
// save in ViewState
ViewState["SortOrder"] = "DESC";
// read from ViewState
string sortOrder = (string)ViewState["SortOrder"];
Cache
1.Cache用于在Http请求期间保存页面或者数据
2.Cache的使用可以大大的提高整个应用程序的效率
3. 它允许将频繁访问的服务器资源存储在内存中,当用户发出相同的请求后服务器不是再次处理而是将Cache中保存的数据直接返回给用户
4.可以看出Cache节省的时间是服务器处理时间
5.Cache实例是每一个应用程序专有的,其生命周期==该应用程序周期;应用程序重启将重新创建其实例
6.注意:如果要使用缓存的清理、到期管理、依赖项等功能必须使用Insert 或者Add方法方法添加信息
7.代码:
//存放信息
Cache["UserNameID"]="1000";
//存放信息
Cache.Insert("UserNameID","1000");
//读取信息
String UserNameID=Cache["UserNameID"].ToString();
隐藏域
1.Hidden控件属于Html类型的服务器控件(要使用Runat=server),可以实现隐藏域的功能,他和其他的控件没什么区别只是不会在浏览器上显示,始终处于隐藏状态。
2. 每一次提交的时候它会和其他服务器控件一起提交到服务器端
3.代码:
//存放信息
Hidden.Value="1000";
//读取信息
String UserNameID=Hidden.Value;
查询字符串
将传递的值连接在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"];
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fengying0529/archive/2009/09/07/4527957.aspx
发表评论
-
Sharepoint+MOSS分册第2轮筛选结果文章列表
2012-01-20 00:34 717Sharepoint+MOSS分册第2轮筛 ... -
在 Android 平台上应用 Berkeley DB 11gR2 SQL(drop-in模式)(转http://www.cnmsdn.com/html/201004/1270362092ID3134.html)
2012-01-20 00:34 774在 Android 平台上应用 Ber ... -
编程心得
2012-01-20 00:34 664编程心得 2011年03月21日 转自:http://w ... -
在 C# 中通过 P/Invoke 调用Win32 DLL
2012-01-20 00:34 747在 C# 中通过 P/Invoke 调用Win32 DLL ... -
http://www.cnblogs.com/yungboy/archive/2010/05/28/1746376.html
2012-01-20 00:33 851http://www.cnblogs.com/yungboy/ ... -
10] 建立C帝国(GDAL编译安装以及一般的C库编译步骤)
2012-01-19 01:31 86710] 建立C帝国(GDAL编译安 ... -
Android开发之Android体系架构介绍
2012-01-19 01:31 1535Android开发之Android体系 ... -
EGLIBC库介绍
2012-01-19 01:31 594EGLIBC库介绍 2011年05月05 ... -
给Win32 GUI程序调试信息输出方法
2012-01-19 01:31 1336给Win32 GUI程序调试信息输出方法 2011年09月2 ... -
SAMSUNG S3C2440的简易BootLoader ㈢
2012-01-19 01:31 596SAMSUNG S3C2440的简易BootLoa ... -
v4l2驱动编写篇(2)
2012-01-17 00:48 1169v4l2驱动编写篇(2) 2011年04月01日 应用可 ... -
file_operation结构体详解
2012-01-17 00:48 1002file_operation结构体详解 2011年06月22 ... -
电脑蓝屏自动关机故障的检修方法
2012-01-17 00:48 638电脑蓝屏自动关机故障的检修方法 2011年09月23日 ... -
Video4Linux
2012-01-17 00:48 763Video4Linux 2011年12月05日 Vide ... -
HK-2000数据采集仪WEB服务器BOA的移植方法
2012-01-15 19:37 667HK-2000数据采集仪WEB服务器BOA的移植方法 200 ... -
如何为linux嵌入式开发建立交叉编译环境(2.4内核)
2012-01-15 19:36 683如何为linux嵌入式开发建立交叉编译环境(2.4内核) 2 ... -
【转】如何为嵌入式开发建立交叉编译环境
2012-01-15 19:36 743【转】如何为嵌入式开发建立交叉编译环境 2009年10月26 ... -
EGLIBC库介绍
2012-01-15 19:36 538EGLIBC库介绍 2011年05月05 ... -
c库函数qsort使用方法实例
2012-01-15 19:36 534c库函数qsort使用方法实例 2010年01月03日 ...
相关推荐
Application,_Session,_Cookie,_Viewstate,_Cache对象用法和区别.pdf
Application、Session、Cookie、ViewState、Cache、Hidden的区别
Application,Session,Cookie,ViewState和Cache生命周期
ASP.NET保存信息总结(Application,Session,Cookie,ViewState和Cache等) .doc
清晰的文字说明,注明每一个用法。 session application cookie viewstate等用法
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。 方法 信息量大小 作用域和保存时间 应用范围 保存位置
ASP.NET_Application,Session,Cookie和ViewState等对象用法和区别,非常详细清楚的讲解了该问题
内置对象application,session,cokie,viewstate的区别与session详解
本文主要介绍Application、Cookie、Session、Cache和ViewState,并总结了在什么情况下使用他们,希望对大家有所帮助。
比较学习ASP.net中的Session、ViewState、Application、Cookies
状态管理与数据库、状态管理的比较参数、Cookie、session的、Application、Cache、隐藏域/ViewState/ControlState、ControlState、Profile等等的概述、使用说明及对比,挺有用的,共享一下,欢迎下载
关于ASP.NET网页中Cache, Session, and ViewState用法比较程序例子。
Session,ViewState用法,恩这个是c#里面的哈,别下错了亲
ASP.NET状态管理(Cookies,Session,ViewState,Application...)
session、viewstate jQuery SQL存储过程等一系列教学网站 相当实用哦
ASP.NET应用程序中,页面中有一个隐藏标记: ...用来存放可转换为字符串格式的信息,主要存放页面上 Web 控件中数据的状态,主要功能是支持 Web 控件的持久性。 这些信息是加密的,本工具可对这些信息进行解密、查看...
在asp.net中储存数据的方式有很多,包括application,session,cache, cookie, viewstate。其中application和cache的应用范围,使用方式都比较相似,这里主要对比一下这两种方式。