职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1739|回复: 0

转载(比较application,session,cookies,viewstate)

[复制链接]
蓝色梦幻 发表于 2008-3-11 11:09 | 显示全部楼层 |阅读模式
转载(比较application,session,cookies,viewstate)
Application用于保存所有用户共用的数据信息,如果被保存的数据在应用程序生存期内根本不会改变或很少改变,用它。但是在asp.net中有个web.config,可能更好点。如果要使用application,一个需要考虑的问题是任何写操作都有要在application_onstart事件中(Global.asax)中完成。尽管使用application.lock和application.unlock方法来避免操作的同步,但是它串行化了对application的请求,当网站访问量大时会造成性能瓶颈。因此最好不要用它存取大的数据集。
使用方法:
//存放信息
Application[\"test\"] = \"100\";
//读取
String test = Application[\"test\"].ToString();

Session 用于保存每个用户的专用信息,它的生存期是用户持续请求时间再加上一段时间(可以在web.config中设置,默认是20分钟)。Session中的信息保存在服务器的内存中,当然你也可以设置它的保存方法(如存在SQL数据库中)。由于用户停止使用程序后它仍然在内存中保持一段时间,因此使用Session对象保存用户数据的方法效率很低。对于小量的数据。使用Session还是一个不错的选择。
//存
Session[\"user\"] = \"majcms\";
//取
String username = Session[\"user\"].ToString();

Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它保存非敏感性的内容。保存时间可以根据需要设置。如果没有设置Cookie失效时间,它仅保存至浏览器关闭。如果将Cookie设置为Min Value,则表示它永不过期。Cookie存储量受到很大限制,一般浏览器支持最大容量为4096字节。因此不能用来存储大量数据。由于并非所有浏览器都支持Cookie,并且它是以明文方式保存的,所以最好不要保存敏感性的内容。否则会影响网络安全。
//存
Response.Cookies[\"name\"].Value = \"majcms\";
//取
String username = Response.Cookies[\"name\"].Value;

ViewState常用于保存单个用户的状态信息,有效期等于页面的生存期,注意:是单个页面的生存期,所以它的生存期是比其它三个都小的。ViewState容器可以保存大量的数据,但是必须谨慎使用,因为过多使用会影响性能,最明显的就是网页打开速度慢。所有Web服务器控制都使用ViewState在页面回发期间保存自已的信息状态,如果某个控件不需要在回发期间保存信息,最好将其ViewState属性关闭,(看一下控制的属性面板),避免不必要的资源浪费。通过设置页面的\"EnableViewState=false\"可以禁用整个页面的ViewState。
//存
ViewState[\"index\"] = 1;
//取
int indexID = (int)ViewState[\"index\"];


//存
ViewState[\"name\"] = \"majcms\";
//取
String Name = ViewState[\"name\"].ToString();
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-16 05:18 , Processed in 0.102041 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表