首页 > 代码库 > Asp.net Web 状态管理
Asp.net Web 状态管理
最近在网上搜罗了 ASP.NET WEB 状态管理方面的一些内容,终于把这些内容整合总结了一下。
1. 希望自己通过整理,能够掌握一些,为自己投资。
2. 以便自己忘记,又要浪费时间搜罗。
3. 希望对园友有帮助,这是一件很开心的事情
4. 希望大侠们看到问题及时帮忙指正,不想误导自己,更不想误导园友,在下不胜感激
不再磨叽,马上上菜
名称 | 用户 | 生存时间 | 数据 | 位置 | 优势 | 劣势 | 建议 |
Application | 所有用户 | 应用程序重新启动 | 没有限制,只被存储一次 | 服务器,可以存储在数据库 | 1. 实现简单 2. 整个应用程序作用域(公用) | 1. 整个应用程序作用域的范围导致没有与私人空间 2. 服务器挂掉、升级以及关闭可能会导致数据丢失或被破坏 3. 需要占用服务器内存 | 存储多用户使用但不经常改变且不考虑安全性的全局信息 |
Cookie | 当前用户 | 一般很短,但是只要用户不删除,可以是数月甚至数年 | 少量且经常改变的数据 | 客户端 | 1. 存储时间可配置 2. 无需服务器资源 3. 简单 4. 数据持久化 | 1. 数据大小受限 2. 用户可禁用 3. 潜在安全隐患 | 需要在客户端且不需要考虑安全性的少量数据 |
QueryString | 一个或一组用户 | 为下一个请求 (可以跨多个请求重复使用) | 很小,简单数据 | 客户端 | 1. 无需服务器资源 2. 被广泛支持 3. 实现简单 | 1. 潜在安全隐患 2. 能力有限(被URL长度限制) | 通过链接,从一个面发送到另一个页面或者是相同页面,且不需要考虑安全性的少量数据 |
Session | 当前用户 | 只要用户是在线的,以及在超时时间内(一般是20分钟),支持自失效 | 没有限制,但是应尽量小,因为每个用户都有自己单独session的存储 | 服务器 | 1. 实现简单 2. 可以使用会话管理事件 3. 数据持久化 4. 可在多计算机、多个进程之间使用 5. 弥补Cookie受限 6. 可以自定义和扩展Session | 1. 性能问题 | 需要考虑安全性,存储特定的单独会话的短期信息 |
Cache | 所有用户或者用户子集 | 根据实际需要可长可短 | 可很大、也可以很小、也可以很复杂 | 客户端/服务器 | 1. 有ASP.NET管理 2. 当内存不足或者超时,将自动清除 3. 可配置 4. 减轻Web Service或者数据库的负担 5. 提高性能 6. 可靠性 | 1. 同步不及时 2. 扩展性问题 3. 维护成本 | 用户经常访问但不经常更新的数据 |
View State | 当前用户 | 一个页面 | 少量信息,随着页面的回发,数据将会在页面来回发 | 客户端,以隐藏域的形式存储 | 1. 无需服务器资源 2. 实现简单 3. 增强全性 | 1. 性能问题 2. 设备限制 3. 潜在安全隐患 | 存储少量需要回发给自己的页面信息 |
Control state | 当前用户 | 一个页面 | 少量信息,往返于服务器之间的控制使用的状态信息 | 客户端,默认以隐藏域的形式存储 | 1. 无需服务器资源 2. 可靠 3. 通用 | 1. 特定程序依赖性 | 需要存储少量信息往返于服务器之间的控制使用的状态信息 |
Hidden Fields | 当前用户 | 一个页面 | 少量且经常被改变的数据 | 客户端 | 1. 无需服务器资源 2. 被广泛支持 3. 实现简单 | 1. 潜在安全隐患 2. 存储数据简单 3. 性能问题 4. 存储限制 | 需要发送到另一个页面或者回发,且无需考虑安全性的少量页面信息 |
Profile Properties | 当前用户 | 配置文件更新 | 任何类型的数据 | 服务器 | 1. 数据持久化 2. 可在多计算机、多个进程之间使用 3. 可扩展性 | 1. 性能问题 2. 额外的配置要求 3. 维护数据 | 用户session过期后需要持久化的信息,用户下次访问时需要恢复的信息 |
Database | 当前用户 | 只要不被删除 | 任何类型的数据 | 服务器 | 1. 安全性 2. 数据存储量大 3. 数据持久化 4. 稳定性和数据完整性 5. 可访问性 6. 被广泛支持 | 1. 复杂性 2. 性能问题 | 存储大量的信息,使用管理事务,或者整个应用程序生命周期都需要使用的信息,再次访问时需要使用的信息。考虑数据挖掘,考虑安全性。 |
再次希望,如果有问题能及时帮忙指正,有问题请留言,有帮助就支持一下吧!