天天加油 - 助您成才
ASP.NET保持用户状态的九种选择(上)
您正在看的.Net是: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 一个用户 可以很短,如果用户不删除也可以很长 小的、简单数据 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对象是理想的选择。连接字符串就是保存在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 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 <

1 2 3 4 下一页

排行

  1. 在ASP.Net中应用javascript
  2. 用ASP.NET结合XML制作广告管理程
  3. 用ASP.NET写你自己的代码生成器
  4. 利用ASP.NET构建网上考试系统
  5. 设计ASP.NET新闻管理系统
  6. 创建用于ASP.NET的分页程序控件
  7. ASP.NET实现用户在线检测的类源码
  8. ASP.NET结合存储过程写的通用搜索
  9. 用photoshop制作破碎的蛋壳效果
  10. Photoshop 有关通道
  11. Photoshop给MM的黑白照片上色
  12. Photoshop高级图层技巧进阶篇
  13. Photoshop 关于图像的选取
  14. Photoshop金属效果的教程
  15. Photoshop中3D logo的制作技巧
  16. Photoshop制作玻璃球效果
  1. C#版的网站新闻发布系统
  2. ASP.NET窗体对话框的实现
  3. 在VB.NET中使用MS Access存储过程
  4. ASP.NET中使用IFRAME建立类Modal
  5. 给Asp.Net初学者的关于继承和多态
  6. 在ASP.NET中上传图片并生成缩略图
  7. ASP.NET程序中用Repeater实现分页
  8. 用asp.net还原与恢复sqlserver数
  9. 为ASP.NET封装的SQL数据库访问类
  10. 用ASP.Net(C#)连接Oracle数据库的
  11. 保存图片流到数据库之后固定显示
  12. ASP.NET系统用户权限设计与实现
  13. 在asp.net中为Web用户控件添加属
  14. ASP.NET对IIS中的虚拟目录进行操
  15. ASP.NET中利用cookies保持客户端
  16. ASP.NET下MVC设计模式的实现
  1. C#版的网站新闻发布系统
  2. ASP.NET窗体对话框的实现
  3. 在ASP.NET中上传图片并生成缩略图
  4. ASP.NET程序中用Repeater实现分页
  5. 用asp.net还原与恢复sqlserver数
  6. 为ASP.NET封装的SQL数据库访问类
  7. 用ASP.Net(C#)连接Oracle数据库的
  8. ASP.NET系统用户权限设计与实现
  9. 在asp.net中为Web用户控件添加属
  10. ASP.NET对IIS中的虚拟目录进行操
  11. ASP.NET中利用cookies保持客户端
  12. ASP.NET下MVC设计模式的实现
  13. Asp.net+Xml实现无数据库论坛一点
  14. ASP.NET编程中的十大技巧
  15. TreeView使用笔记
  16. 用PS+IR制作翻页动画

最近更新

  • 推荐阅读
  • .Net《ASP.NET保持用户状态的九种选择(上)》ASP.NET保持用户状态的九种选择(上)
    关于我们 | 版权申明 | 广告服务 | 友情链接 | 网站地图 | 使用帮助 | ©2006-2008 TTADD.COM