ASP.NET中的状态管理

http://blog.csdn.net/zhoufoxcn/archive/2007/01/27/1495822.aspx

Session 会话

l 区分客户端,不区分页面

l 数据量会随着客户端(并发)数量的增多,而增多

l 服务器端存储什么:数据存储在服务器端(InProcStateServerSqlServer)

l 客户端存储什么:客户端存储的是SessionID

l 有过期策略

l 适用场合:与用户相关的数据,购物车,用户帐号,

Application状态

l 全局数据,所有客户端共享:不区分客户端,不区分页面

l 服务器端存储什么:数据存储在服务器端(服务器进程内)

l 客户端存储什么:客户端不存储任何与Application状态数据

l 可能有多线程并发访问的问题,需要同步(Lock/Unlock

l 适用场合:全局性的数据,在Application_Start内初始化,然后在其他页面中访问

ViewState视图状态

l 区分客户端,区分页面

l 服务器端存储什么:数据在服务器和客户端(页面数据)来回穿梭

l 客户端存储什么:数据在服务器和客户端(页面数据)来回穿梭

l 适用场合:单一页面上的临时性数据,用于用户和一个页面之间的来回交互。

l 安全性比较低

页面上的实例字段

l 区分客户端,区分页面,而且区分前后不同的请求

l 生存期极短,只在服务器处理页面的过程中有效

l 适用场合范围较窄

静态字段

l 全局数据,所有客户端共享:不区分客户端,不区分页面

l 服务器端存储什么:数据存储在服务器端(服务器进程内)

l 客户端存储什么:客户端不存储任何static状态数据

l 可能有多线程并发访问的问题,同步需要自己编写代码(不如Application方便

l 适用场合:全局性的数据,在任何需要的地方内初始化,然后在其他页面中访问

查询字符串 Query String

l 区分客户端,在两个相邻的页面之间共享(通过地址栏上数据)

l 服务器端存储什么:数据在服务器和客户端浏览器地址栏中交互

l 客户端存储什么:数据在服务器和客户端浏览器地址栏中交互

l 适用场合:作为数据查询的分离关键字,支持copy或存储。丧失安全性; 异构网站系统(JSP, ASP, PHP)ASP.NET页面集成

Input

l 区分客户端,在两个相邻的页面之间共享(通过地址栏上数据)

l 服务器端存储什么:数据从客户端页面上post给服务器

l 客户端存储什么:数据从客户端页面上post给服务器

l 适用场合:异构网站系统(JSP, ASP, PHP)ASP.NET页面集成

Cookie

l 区分客户端,不区分页面

l 服务器端存储什么:服务器不保存Cookie数据

l 客户端存储什么:存放Cookie数据

l 有过期策略

l 适用场合:异构网站系统(JSP, ASP, PHP)ASP.NET页面集成,以及长期保存的数据


你可能感兴趣的:(.net,PHP,浏览器,asp.net,asp)