ASP.NET为保持用户请求之间的数据提供了多种不同的途径。你可以使用Application对象、Cookie、Hidden Fields、Sessions或Cache对象,以及它们的大量的方法。决定什么时候使用它们有时很困难。
为了确定使用哪种对象保存数据,我们首先回答这三个问题:a)谁需要数据?b)数据需要保持多长时间?c)数据集有多大?通过回答这些问题,你能决定哪个对象为保持ASP.NET应用程序请求间数据提供了最佳的解决方案。
下表提供了各对象的相关信息:
保持方法 | 谁需要数据 | 保持多长时间 | 数据量大小 |
Application | 所有用户 | 整个应用程序生命期 | 任意大小 |
Cookie | 一个用户 | 可以很短,如果用户不删除也可以很长 | 小的、简单数据 |
Form Post | 一个用户 | 到下一次请求(可以跨越多个请求重复使用) | 任意大小 |
QueryString | 一个或一组用户 | 到下一次请求(可以跨越多个请求重复使用) | 小的、简单数据 |
Sessions | 一个用户 | 用户活动时一直保持+一段时间(一般20分钟) | 可以是任何大小,但是因为用户有单独的Sessions 存储,所有它应该最小。 |
Cache | 所有用户或某些用户 | 根据需要 | 可大可小、可简单可复杂 |
Context | 一个用户 | 一个请求 | 可以保持大对象,但是一般不这样使用 |
ViewState | 一个用户 | 一个Web窗体 | 最小 |
Config file | 所有用户 | 知道配置文件被更新 | 可以保持大量数据,通常组织小的字符串和XML结构 |
看了上表,相信您能选择最佳的数据存储方案了!