扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
随着Web时代的到来,在无状态的HTTP世界中管理状态成为Web开发者的一个大问题。最近出现了几种存储和检索数据的不同技术。本文我将解释ASP.NET开发者能怎样通过页面请求维护或传递状态。
在ASP.NET中,有几种保持用户请求间数据的途径--实际上太多了,使没有经验的开发者对在哪个特定的环境下使用哪个对象很困惑。为了回答这个问题,需要考虑下面三个条件:
.谁需要数据?
.数据需要保持多长时间?
.数据集有多大?
通过回答这些问题,你能决定哪个对象为保持ASP.NET应用程序请求间数据提供了最佳的解决方案。图1列出了不同的状态管理对象并描述了什么时候使用它们。ASP.NET中添加了四个新的对象:Cache、Context、ViewState和Web.Config文件。ASP.NET也支持传统的ASP对象,包括Application、 Cookie、有隐藏字段的 Form Post 、 QueryString和Sessions。注意这五个数据容器的正确使用方法发生了改变,因此有经验的程序员在考虑这些熟悉的对象时也许需要学习一些知识。
保持方法 | 谁需要数据 | 保持多长时间 | 数据量大小 |
Application | 所有用户 | 整个应用程序生命期 | 任意大小 |
Cookie | 一个用户 | 可以很短,如果用户不删除也可以很长 | 小的、简单数据 |
Form Post | 一个用户 | 到下一次请求(可以跨越多个请求重复使用) | 任意大小 |
QueryString | 一个或一组用户 | 到下一次请求(可以跨越多个请求重复使用) | 小的、简单数据 |
Sessions | 一个用户 | 用户活动时一直保持+一段时间(一般20分钟) | 可以是任何大小,但是因为用户有单独的Sessions 存储,所有它应该最小。 |
Cache | 所有用户或某些用户 | 根据需要 | 可大可小、可简单可复杂 |
Context | 一个用户 | 一个请求 | 可以保持大对象,但是一般不这样使用 |
ViewState | 一个用户 | 一个Web窗体 | 最小 |
Config file | 所有用户 | 知道配置文件被更新 | 可以保持大量数据,通常组织小的字符串和XML结构 |
表1. ASP.NET中的数据容器对象
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者