没有合适的资源?快使用搜索试试~ 我知道了~
计算机\教程\asp.net和C#\原版教程\ASP.NET保持用户状态的选择pdf
需积分: 3 2 下载量 13 浏览量
2009-05-03
22:50:14
上传
评论
收藏 253KB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/1268532/0001-c8eb35f7d67605bcd4a84d8085b70c47_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
20页
计算机\教程\asp.net和C#\原版教程\ASP.NET保持用户状态的选择pdf
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/1268532/bg1.jpg)
ASP.NET 保持用户状态的选择
摘要:ASP.NET 为保持用户请求之间的数据提供了多种不同的途径。你可以使用 Application
对象、cookie、hidden fields、Sessions 或 Cache 对象,以及它们的大量的方法。决定什么
时候使用它们有时很困难。本文将介绍了上述的技术,给出了什么时候使用它们的一些指导。
尽管这些技术中有些在传统 ASP 中已经存在,但是有了.NET 框架组件后该在什么时候使用
它们发生了变化。为了在 ASP.NET 中保持数据,你需要调整从先前的 ASP 中处理状态中学
习到的知识。
随着 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
一个用户
可以很短,如果用户不删除也可以很长
小的、简单数据
![](https://csdnimg.cn/release/download_crawler_static/1268532/bg2.jpg)
Form Post
一个用户
到下一次请求(可以跨越多个请求重复
使用)
任意大小
QueryString
一个或一组用
户
到下一次请求(可以跨越多个请求重复
使用)
小的、简单数据
Sessions
一个用户
用户活动时一直保持+一段时间(一般
20 分钟)
可以是任何大小,但是
因为用户有单独的
Sessions 存储,所有它
应该最小。
Cache
所有用户或某
些用户
根据需要
可大可小、可简单可复
杂
Context
一个用户 一个请求
可以保持大对象,但是
一般不这样使用
ViewState
一个用户 一个 Web 窗体 最小
Config file
所有用户 知道配置文件被更新
可以保持大量数据,通
常组织小的字符串和
XML 结构
表 1. ASP.NET 中的数据容器对象
Application
让我们通过回答上面的状态问题判定条件来说明该对象。谁需要数据?所有的用户需要
访问它。需要保持数据多长时间?永久保持,或在应用程序生存期中保持。数据多大?可以
是任何大小--在任何给定的时刻只有数据的一个副本存在。
在传统 ASP 中,Application对象提供了一个保存频繁使用但很少改变的数据片的位置,
例如菜单内容和参考数据。尽管在 ASP.NET 中 Application 依然作为数据容器存在,但是有
其它一些更适合以前保存在传统 ASP 应用程序的 Application 集合中的数据的对象。
在传统的 ASP 中,如果被保存的数据在应用程序的生存期中根本不会改变(或很少改
变,例如只读数据和大多数情况下是读操作的数据),Application 对象是理想的选择。连
![](https://csdnimg.cn/release/download_crawler_static/1268532/bg3.jpg)
接字符串就是保存在 Application 变量中的一个最普通的数据片,但是在 ASP.NET 中类似的
配置数据最好保存在 Web.config 文件中。如果使用 Application 对象一个需要考虑的问题是
任何写操作要么在 Application_OnStart 事件(global.asax)中,要么在 Application.Lock 部
分中完成。尽管使用 Application.Lock 来确保写操作正确地执行是必要的,但是它串行化了
对 Application 对象的请求,而这对于应用程序来说是个严重的性能瓶颈。图 2 演示了怎样
使用 Application 对象,它包括一个 Web 窗体和它的代码文件。
Application.aspx
<form id="Application" method="post" runat="server">
<asp:validationsummary id="valSummary" Runat="server">
</asp:validationsummary>
<table>
<tr>
<td colSpan="3">Set Application Variable:</td>
</tr>
<tr>
<td>Name</td>
<td><asp:textbox id="txtName" Runat="server"></asp:textbox>
</td>
<td><asp:requiredfieldvalidator id="nameRequired"
runat="server" Display="Dynamic" ErrorMessage="Name is
required." ControlToValidate="txtName">*
</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td>Value</td>
<td><asp:textbox id="txtValue" Runat="server">
</asp:textbox></td>
<td><asp:requiredfieldvalidator id="valueRequired"
![](https://csdnimg.cn/release/download_crawler_static/1268532/bg4.jpg)
Runat="server" Display="Dynamic" ErrorMessage="Value is
required." ControlToValidate="txtValue">*
</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td colSpan="3"><asp:button id="btnSubmit" Runat="server"
Text="Update Value"></asp:button></td>
</tr>
</table>
<asp:Label ID="lblResult" Runat="server" />
</form>
Application.aspx.cs
private void btnSubmit_Click(object sender, System.EventArgs e)
{
if(IsValid)
{
Application.Lock();
Application[txtName.Text] = txtValue.Text;
Application.UnLock();
lblResult.Text = "The value of <b>" + txtName.Text +
"</b> in the Application object is <b>" +
Application[txtName.Text].ToString() + "</b>";
}
}
代码段 1.在 ASP.NET 中访问 Application 对象
它的输出如下图所示:
剩余19页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
sunlmx
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)