ASP.NET状态保存的方法详细介绍
随着时代车论的推进,先进社会的系统越来越基于WEB模式了,在一个WEB系统中,我们经常需要在系统里保存一些状态值.那么在ASP.NET里保存状态又有那些方法呢?既然WEB系统是B/S模式,那么我们的状态理所当然地可以保存在服务器或客户端,于是产生了客户端保存和服务器端两种保存方式.
我们首先看使用服务器端保存方式.
服务器端保存方式一般有如下3种:
存储页信息的服务器端选项往往比客 户端选项具有更高的安全性,但它们可能使用更多的 Web 服务器资源,这可能在信息存储量较大时导致可缩放性问题。
1,Application:
利用场合:所有的请求都会需要的 一些共有资源,由最先的一个请求率先获取之后,拿出来共享,其他的请求就不用浪费资源进行再次获取。典型利用场合:一个股市 Web 站点可能在一天中每 5 分钟从数据库获取大量的金融股票信息(也许是 40 MB 的数据),然后将这些信息缓存在应用程序状态中,这样所有以后的查找请求都可以在应用程序状态中访问这些信息。其结果是极大地提高了每个 请求的性能,因为传入的请求不需要跨进程、跨计算机或数据库的往返过程。
'首次Http Get请求
If Not Me.IsPostBack Then
'先判断Application中是否已経有了缓存
If Application.Item("Database") Is Nothing Then
'若没有,从DataCenter中获取
Dim ds As New DataSet
ds.ReadXml(Server.MapPath("TestData.xml"))
Dim dv As New DataView(ds.Tables(0))
'拿到之后, 缓存到Application,方便别的进程Http Get请求复用
Application.Add("DataBase", dv)
End If
Dim dv1 As DataView
dv1 = Application.Item("DataBase")
'缓存到Session, 方便当前进程的Http Post请求
Session.Add("DataBase", dv1)
End If
优点:易于实现,全局范围。
缺点:持久性,若 保存数据的服务器端进程被强行关闭,那么数据就会丢失,所以利用Application一定要有保底的策略,有的话就使用,没有的话就自己拿。耗用服务器端的内存。
注意:因为Application中的数据被多个进程公用,所以若需要更新其中的值时,需要利用 如下的语句,做到独占更新:
Application.Lock()
Application.Item("DataBase ") = NewDataBase
Application.UnLock()
2,Session:
利用场合:单独的一个进程内部使用,存储单独会话的短期的、敏感的数据。
优点:易于实现,持久性,可以应对IIS重启和辅助进程重启, 可在多进程中使用
缺点:耗用服务器端的内存。
3,Database:
优点:安全性。 容量。 持久性。 可靠性和数据完整性。 可访问性。 广泛支持。
缺点:复杂,性能
方法:使用场合
应用程序状态:存储更改不频繁的全局信息,这些信息由多个用户使用,此时安全性不成为问题。不要在应用程序状态中存储大量的信息。
会话状态:存储特定于单独会话的短期信息,并且需要较高的安全性。不要在会话状态中存储 大量的信息。在支持许多用户的应用程序中,这可能会占用大量服务器资源并影响可缩放性。
数据库支持:存储大量信息,管理交易,或者信息必须可以经受得住应用程序和会话重新启动。数据挖掘十分重要,并且需要较高的安全性。
最新文章
- 客户端与服务器端对URL字符编码和解 [05-07]
- 高手过招 ASP.NET中防范SQL注入式攻 [12-25]
- ASP.NET2.0 AJAX中调用服务器Webse [11-29]
- ASP.NET中检测浏览器属性的方法及代 [11-29]
- ASP.NET2.0中Web Parts介绍及使用实 [11-29]
- 如何实现ASP.NET网站个性化的元素及 [11-24]
- 自定义控件把脚本文件编译为内嵌资 [11-24]
- ASP.NET2.0向其它网页传递信息的方 [11-24]
- 组合ASP.NET数据控件构建接口强大的 [11-24]
- Asp.net中创建类似Google自动感应的 [11-24]
推荐文章


热点文章
亲密接触ASP.Net(1-14)----站长强
ASP.NET中常用的优化性能方法详解
HTML图像热区基本介绍及实例代码
ASP.NET1.1中如何实现动态树实例
ASP.NET 2.0 ObjectDataSource控
Asp.Net时间格式转换方法
ASP.NET生成静态网页的方法
编程高手谈ASP.NET状态管理之客户
Asp.net页面之间跳转的三种方法比
ASP.NET的 Session 详解
深入分析编译asp.net 2.0项目到d
ASP.NET状态保存的方法详细介绍
ASP.NET性能优化-数据库方面的选
ASP.NET页面间传值方法大集会
实例:利用AJAX和ASP.NET实现简单
探讨ASP.NET的本质之IIS以及进程
ASP.NET用户控件返回事件的原理及
如何用ASP.NET 2.0主题控制网站外
ASP.NET性能优化-页面及控件
使用ASP.NET AJAX实现幻灯片效果
请慎用ASP.Net的validateRequest
ASP.NET2.0全新增加控件之ImageM
教你如何利用ASP.net编写发送Ema
完美教程:Asp.net如何导出pdf格式
ASP.NET2.0中CSS失效解决方案大集
结合工作经验总结asp.net几个常用
深入探讨ASP.NET实现回调实现的步
ASP.NET中如何实现通过对话框方式
asp.net数据校验部分的封装与应用
.NET用户控件基本使用及如何创建

