Session、Cache、Cookie、ViewState、 简略说明

摘要:Session、Catch、Cookie、ViewState、 简略说明


Session
数据存放在服务器端,安全性高,缺点为占用服务器的内存资源(每一连线便占用一份内存空间),连线结束时会自动删除。
建议程序中随时将不用的 Session 释放掉,以免造成服务器内存的负担。
使用方式:session("变量名称")=变量值
Session.clear()  清空 session 对象内所有数据 。
Session.Remove()  移除 session 的某一个变量 。
Session.RemoveAll()  移除 session 的所有变化 。
Session.Abandon()     移除 session 的所有变化 。
RemoveAll 与Abondon     不同在于,Session.Abondon 会触发 Session_End 事件。
Session.TimeOut = 20 设定Session的 TimeOut时间。


Application
用途:不同使用者之间(不同连线)共用某些系统变量,例如:网页浏览次数。
数据存放在服务器端,会占用服务器系统资源。
当IIS或网页服务器重新启动、修改Global.asax、修改 web.config时, Application的值便会遗失。
使用方式:application("变量名称")=变量值
Q:因为该变量是共用,所以会有互相抢用的问题,所以在修改该值时都应该先 Lock。
Application.Lock() → Application("count")+=1 → Application.UnLock()

Cookie
将数据存在使用者的电脑中,大多浏览器限制文件大小不得超过 4096 Bytes,每个网站最多存放20个 Cookie。

通常用来记录使用者名称、账号、上次到访时间......等等。
使用方式:Response.Cookies("变量名称").Value=变量值
设定 Cookie 有效期限 Response.Cookies("变量名称").Expires=Now.AddDays(180) '180天后到期
限制:同一域名的网页才能存取该网站所保存的 cookies
因为数据是存在使用者的电脑中,传送时是以明码方式传送,机密数据不建议以此方式保存。

ViewState


好处:ViewState 的内存是用使客户端,且无像 Cookie 这样的大小限制,所以可以将数据库捞出来的结果存放于 ViewState 中,
这样一来 PostBack 时便不需要再次重捞数据库。
缺点:因为 ViewState 值是用隐藏字段来传送,所以当存放大量数据时,会导致网页内容变大,造成载入速度变慢。
ViewState 是以 Base64 为编码,并非真正加密,对于有心人士仍是有办法破解,机密性数据不建议存放于此。

msdn数据: http://msdn.microsoft.com/zh-tw/library/50x35554(v=VS.80).aspx

Session数据:http://msdn.microsoft.com/zh-tw/library/87069683(v=vs.80).aspx